为各种Android操作系统版本设置推送通知图标

时间:2019-10-18 14:33:40

标签: android cordova push-notification firebase-cloud-messaging android-notifications

在将其标记为重复之前,请阅读我的问题。

我有5台受测试的Android手机,每部都运行不同版本的OS(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_icon-图标都是我的真实应用程序图标的迷你版本(带有颜色)。我在许多线程/博客中都读到,棒棒糖(5.0)以上的真实应用/颜色图标无法用于推送通知。但是,在Android 5.1.1和6.1测试手机上,我有真实的应用程序/彩色图标显示为推送通知图标。

我的问题如下:

  
      
  1. 如果Android 5及更高版本只是透明的推送通知图标-那么这两部测试电话如何显示真实的彩色图标?

  2.   
  3. 我对这个正确的理解是...还是可以使真实的应用程序图标显示为Android 7、8和9的推送通知图标?如果是的话...除了上面(同样在下面)Firebasex方向中定义的标准步骤之外,我还必须做什么?

  4.   
  5. 如果不可能...谁能回答为什么Google停止支持颜色/真实应用程序推送通知图标? iOS支持将微型应用程序图标作为其操作系统所有版本的推送通知图标。彩色图标确实可以帮助用户准确地知道是什么应用程序通知了他们,而无需采取任何进一步的措施。白色图标通常不太容易识别,因此很难辨别哪个应用程序刚刚发送了消息

  6.   
  7. 如果不可能,那么我将需要为7、8和9创建透明图标-但是我如何让较低版本仍显示真实的应用程序图标,而较高版本则显示透明图标?我有一个基本的config.xml-我需要添加什么内部代码来测试不同版本,以提供真实图标还是透明图标?

  8.   

当前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是我的实际应用程序/彩色图标的适当大小的迷你版本。

1 个答案:

答案 0 :(得分:1)

  1. 因为他们允许开发人员更新应用程序需要一定的时间。这次启动Android 7的时间用完了。但是,虽然在这些手机中,您可能会在通知栏上看到彩色图标,但是您肯定只能在详细的通知面板(从w / Android 5开始)中得到白色图标轮廓。

  2. 您不能。您应该使用具有PNG透明性的白色图标color推送有效载荷值,以在详细通知面板中获得带有彩色背景的白色图标。

  3. 我想他们不再支持此功能,因为开发人员倾向于创建极其丑陋的图标,这些图标的尺寸很小(18x18左右),看上去甚至更糟。在这种情况下,最好只看到图标的轮廓,并且在美学上也要更一致……这比要求开发人员设计具有相同样式和准则的图标更为合理。 这里的关键是要有一个适当的徽标,简单但独特,没有太多细节。考虑一下Facebook上的“ f”图标,或Gmail上的信封:即使在单色调色板中,这些图标也始终可以被识别并与相应的应用程序关联。如果您的徽标需要256x256分辨率以适合其所有细节,那么该是时候打电话给图形设计师了,以创建一个新徽标。

  4. 显示用于不同Android版本的不同图标的唯一方法是在发送请求之前在服务器端更改icon 有效载荷。您可以(并且应该)将Android OS版本以及每个用户的推送注册ID一起保存。但是,我不建议您继续使用其他图标的想法,因为:

    • 从Android 5开始,图标将错误地显示在通知详细信息中
    • 您正在生成用户和设备之间的样式不一致。
    • 您的目标应该完全相反;以确保所有用户和所有设备都能以相同的样式看到相同的图标

关于最后一点,Android 4中的用户将看不到您在推送中设置的bg颜色,他们将看到带有默认黑色背景的PNG透明图标。

希望我的帖子对您​​所有的推送图标疑问有所帮助,否则让我知道。