我使用Phonegap Push Plugin并且当通知区域中显示推送通知时,图标只是一个白色方块。我希望它显示star.png
。我按照以下方式尝试了the documentation:
我将star.png
放入www/images
,并将以下行添加到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&amp; cordova-android@6.4.0。
答案 0 :(得分:2)
此插件和默认的通知图标(白色正方形)也存在相同的问题。似乎icon
函数中的init()
属性仅适用于GCM(插件版本1.x)。我找到了一种在推送有效载荷中设置图标(从服务器发送)的解决方案。不幸的是,我无法更改有效负载,因为它不是此应用程序中的服务。
但是幸运的是,firebase也有自己的推送图标设置(默认:白色方形图标),可以用AndroidManifest.xml
中的元数据标签替换。
通过在位于metadata
的AndroidManifest.xml文件中添加以下platforms/android/app/src/main/
标签来尝试此解决方案:
<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
答案 1 :(得分:0)
如果您阅读文档中的部分
其中的图标是Android
.png
文件夹中res/drawable
图像文件的名称。例如:platform / android / res / drawable / phonegap.png编写钩子来描述如何将图像复制到Android res / drawable文件夹不在本README的讨论范围之内,但是您可以复制一个出色的教程。 。您可以查看本文以了解更多详细信息,http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/
它清楚地表明您需要在drawable
文件夹中,而您没有。
答案 2 :(得分:0)
对于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',