首页 > 解决方案 > Firebase 通知是灰色的

问题描述

我正在使用 Firebase Cloud Messaging 向我的 Flutter 应用程序发送通知。它工作正常,但我的应用程序图标通知在 Google Pixel XL 上是灰色的。我可以看到轮廓,但由于某种原因,它仍然是灰色的。我在不同的文章中读到它与 Android SDK 级别有关,但是 Flutter 中的 minSdkVersion 已经是 16(小于 21)所以我不明白为什么颜色不会显示。

那么是否可以用颜色显示我的应用程序图标通知?

- 提前致谢

标签: androidfirebasepush-notificationflutterfirebase-cloud-messaging

解决方案


在这里你可以阅读:

自定义默认通知

自定义默认图标

如果通知有效负载中没有设置图标,设置自定义默认图标允许您指定用于通知消息的图标。还可以使用自定义默认图标来设置从 Firebase 控制台发送的通知消息使用的图标。如果未设置自定义默认图标且未在通知负载中设置图标,则使用应用程序图标(呈现为白色)。

自定义默认颜色

您还可以定义通知使用的颜色。不同的 android 版本以不同的方式使用此设置:Android < N 使用此作为图标的背景颜色。Android >= N 使用它为图标和应用名称着色。

试着把它放在你的AndroidManifest.xml

<!-- Set custom default icon. This is used when no icon is set for incoming notification messages. -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_ic_notification" />
<!-- Set color used with incoming notification messages. This is used when no color is set for the incoming notification message.  -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/colorAccent" />

你可以在这里找到更多信息。

你还需要有你的colorAccent定义。您可以像这样在 res 文件夹中创建一个colors.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorAccent">#E91E63</color>
</resources>

在此文件夹中:/android/app/src/main/res/values

图标也必须在drawable文件夹中。

但请记住,此图标必须white带有透明背景

对于某些类型的图标,您需要在meta-tags您已经添加到 yuor中的某些设备集上着色,AndroidManifest.xml并且您的图标必须遵循一些规范(必须在透明背景中为白色)。您可以尝试在此处生成一个。试试看。请记住将其放在可绘制文件夹中并更新清单meta-tag图标名称。

另请阅读这个SO question,它加强了我在这里所说的内容。

我在运行 API 级别 27 的 Pixel 2 模拟器上进行了尝试:

在此处输入图像描述

希望能帮助到你。


推荐阅读