我正在使用 Phonegap Push Plugin,当通知区域显示推送通知时,图标只是一个白色方块.我希望它能显示star.png.我按照以下方式尝试了 the documentation: 我将star.png放在www / images中,并将以下行添加
我将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& cordova-android@6.4.0.
我对此插件和默认通知图标(白色方块)有同样的问题.似乎init()函数中的icon属性仅适用于GCM(插件版本1.x).我找到了一个解决方案来设置推送有效负载中的图标(从服务器发送).不幸的是我无法更改有效负载,因为它不是我们在此应用程序中的服务.但幸运的是,firebase还有自己的推送图标设置(默认:白色方块图标),可以用AndroidManifest.xml中的元数据标签替换.
解
通过在位于platforms / android / app / src / main /的AndroidManifest.xml文件中添加以下元数据标记来尝试此解决方案:
<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