【发布时间】:2020-02-15 13:49:45
【问题描述】:
我有 5 部测试 Android 手机,每部都运行不同版本的操作系统(5.1、6.1、7.1、8 和 9)。我会显示两个不同的推送通知图标之一 - 取决于操作系统版本。我的应用图标是六边形。
Samsung Grand Prime,5.1.1 = 真正的应用图标 - 带颜色
Samsung Galaxy S5, 6.0.1 = 真正的应用程序图标 - 带颜色
LG K20 Plus,7.0 = 白色六边形图标
LG K20 Plus,8.0 = 白色六边形图标
Google Pixel 3a, 9.0 = 白色六边形图标
我正在使用 cordova-plugin-firebasex (https://github.com/dpa99c/cordova-plugin-firebasex#android-notification-icons) 并在相应的可绘制文件夹 (mdpi/hdpi/xdpi/xxhdpi/xxxhdpi) 中创建了所有适当的 notification_icons - 图标都是我的迷你版本真正的应用程序图标(带颜色)。我在许多线程/博客中读到了 Lollipop (5.0) 上面的真实应用程序/颜色图标对于推送通知是不可能的。但是,我的真实应用程序/彩色图标在 Android 5.1.1 和 6.1 测试手机上显示为推送通知图标。
我的问题如下:
如果 Android 5 及更高版本只是透明的推送通知图标 - 那么这两款测试手机如何显示真正的彩色图标?
我对此的理解是否正确...或者是否可以让真正的应用程序图标显示为 Android 7、8 和 9 的推送通知图标?如果是这样……怎么办?除了上述(也在下文)Firebasex 说明中定义的标准步骤之外,我还必须做什么?
如果不可能...谁能回答为什么 Google 停止支持彩色/真实应用推送通知图标? iOS 在其操作系统的所有版本中都支持将迷你应用程序图标作为推送通知图标。彩色图标确实可以帮助用户准确地知道什么应用程序刚刚通知了他们,而无需采取任何进一步的行动。白色图标通常不太容易识别,因此更难辨别是哪个应用程序刚刚发送了消息
如果不可能,那么我将需要为 7、8 和 9 创建透明图标 - 但是我怎样才能让低版本仍然显示真正的应用程序图标而高版本显示透明图标?我有一个基本的 config.xml - 我需要添加哪些内部代码来测试不同版本以提供真实图标和透明图标?
目前config.xml的配置是定义推送通知图标是:
<platform name="android">
<resource-file src="res/android/drawable-mdpi/notification_icon.png" target="app/src/main/res/drawable-mdpi/notification_icon.png" />
<resource-file src="res/android/drawable-hdpi/notification_icon.png" target="app/src/main/res/drawable-hdpi/notification_icon.png" />
<resource-file src="res/android/drawable-xhdpi/notification_icon.png" target="app/src/main/res/drawable-xhdpi/notification_icon.png" />
<resource-file src="res/android/drawable-xxhdpi/notification_icon.png" target="app/src/main/res/drawable-xxhdpi/notification_icon.png" />
<resource-file src="res/android/drawable-xxxhdpi/notification_icon.png" target="app/src/main/res/drawable-xxxhdpi/notification_icon.png" />
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/notification_icon" />
</config-file>
</platform>
同样,每个可绘制文件夹中的 notification_icon 是我的真实应用程序/彩色图标的适当大小的迷你版本。
【问题讨论】:
标签: android cordova push-notification firebase-cloud-messaging android-notifications