在Cordova Android中推送通知图标

wez*_*ten 8 android push-notification cordova

我正在使用Phonegap Push Plugin,当通知区域显示推送通知时,图标只是一个白色方块.我希望它显示出来star.png.我想下面的文件如下:

我把star.pngwww/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>
Run Code Online (Sandbox Code Playgroud)

(我知道我应该使用不同的分辨率,但我只是想让它现在正常工作.)

然后当我初始化插件时,我使用:

let push = PushNotification.init({
    android: { senderID: globalData.firebaseSenderID, icon: 'star.png', iconColor: 'blue' },
    ios: {}
});
Run Code Online (Sandbox Code Playgroud)

我也试过了icon: 'star'.然而,白色方块仍然存在.我怎样才能让它发挥作用?

使用cordova@8.0.0和cordova-android@6.4.0.

Ben*_*Bur 5

我在这个插件和默认通知图标(白色方块)上遇到了同样的问题。iconinit()函数中的该属性似乎仅适用于 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>
Run Code Online (Sandbox Code Playgroud)

自动化 - 钩子

运行您的 android 应用程序并检查是否出现您预期的图标。如果您成功了,您现在可以像我们一样通过cordova hook 扩展您的项目。例如,以下 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
Run Code Online (Sandbox Code Playgroud)


Tar*_*ani 0

如果您阅读了文档中的该部分

.png其中 icon 是Android 文件夹中图像文件的名称res/drawable。例如:platforms/android/res/drawable/phonegap.png 编写一个钩子来描述如何将图像复制到 Android res/drawable 文件夹超出了本自述文件的范围,但您可以复制一个出色的教程。 。您可以查看这篇文章了解更多详细信息http://devgirl.org/2013/11/12/ Three-hooks-your-cordovaphonegap-project-needs/

它清楚地表明您需要在drawable文件夹中,但您没有。