[英]Push notification icon in Cordova Android
我正在使用Phonegap推插件,並且在通知區域中顯示推通知時,該圖標只是一個白色正方形。 我希望改為顯示star.png
。 我嘗試遵循以下文檔 :
我將star.png
放在www/images
, star.png
添加到config.xml
<platform name="android">
<resource-file src="www/images/star.png" target="res/drawable-xhdpi/star.png" />
<resource-file src="www/images/star.png" target="res/drawable-hdpi/star.png" />
<resource-file src="www/images/star.png" target="res/drawable-mdpi/star.png" />
<resource-file src="www/images/star.png" target="res/drawable-ldpi/star.png" />
</platform>
(我知道我應該使用不同的分辨率,但我只是想立即使其正常工作。)
然后,當我初始化插件時,我使用:
let push = PushNotification.init({
android: { senderID: globalData.firebaseSenderID, icon: 'star.png', iconColor: 'blue' },
ios: {}
});
我也嘗試過icon: 'star'
。 但是,白色正方形仍然存在。 我該如何工作?
使用cordova@8.0.0和cordova-android@6.4.0。
這個插件和默認的通知圖標(白色正方形)也存在相同的問題。 似乎init()
函數中的icon
屬性僅適用於GCM(插件版本1.x)。 我找到了一種在推送有效載荷中設置圖標(從服務器發送)的解決方案。 不幸的是,我無法更改有效負載,因為它不是此應用程序中的服務。
但是幸運的是,firebase也有自己的push-icon設置(默認:白色方形圖標),可以將其替換為AndroidManifest.xml
的元數據標記。
通過在位於platforms/android/app/src/main/
AndroidManifest.xml文件中添加以下metadata
標簽來嘗試此解決方案:
<application>
<!-- ... -->
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/star"/>
<!-- ... -->
</application>
運行您的android應用程序,並檢查是否出現了您期望的圖標。 如果成功,您現在可以像我們一樣通過cordova鈎子擴展您的項目。 例如,以下OSX bash腳本始終將上述行添加到AndroidManifest:
sed -i '' "s|</application>|<meta-data android:name=\"com.google.firebase.messaging.default_notification_icon\" android:resource=\"@drawable/star\"/></application>|1" platforms/android/app/src/main/AndroidManifest.xml
對於Cordova 8,我將config.xml
文件設置如下:
<resource-file src="resources/android/notification/icon-mdpi.png" target="app/src/main/res/drawable-mdpi/notification.png" />
<resource-file src="resources/android/notification/icon-hdpi.png" target="app/src/main/res/drawable-hdpi/notification.png" />
<resource-file src="resources/android/notification/icon-xhdpi.png" target="app/src/main/res/drawable-xhdpi/notification.png" />
<resource-file src="resources/android/notification/icon-xxhdpi.png" target="app/src/main/res/drawable-xxhdpi/notification.png" />
<resource-file src="resources/android/notification/icon-xxxhdpi.png" target="app/src/main/res/drawable-xxxhdpi/notification.png" />
然后,將這些圖標以以下分辨率放置在resources/android/notification/
:
resources/android/notification/icon-mdpi.png (24 × 24)
resources/android/notification/icon-hdpi.png (36 × 36)
resources/android/notification/icon-xhdpi.png (48 × 48)
resources/android/notification/icon-xxhdpi.png (72 × 72)
resources/android/notification/icon-xxxhdpi.png (96 × 96)
之后僅在將通知安排為屬性時使用:
smallIcon: 'res://notification',
如果您閱讀文檔中的部分
其中icon是Android
res/drawable
文件夾中.png
圖像文件的名稱。 例如:platform / android / res / drawable / phonegap.png編寫鈎子來描述如何將圖像復制到Android res / drawable文件夾不在本README的討論范圍之內,但是您可以復制一個出色的教程。 。 您可以查看此文章以了解更多詳細信息http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/
它清楚地表明您需要在drawable
文件夾中,而您沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.