如何使用 FCM(Firebase 云消息传递)制作紧凑通知?
Posted
技术标签:
【中文标题】如何使用 FCM(Firebase 云消息传递)制作紧凑通知?【英文标题】:How to make a compact notification with FCM (Firebase Cloud Messaging)? 【发布时间】:2019-12-16 10:28:22 【问题描述】:由于 FCM 不允许我发送 URL 类型“图标”,我试图在 FCM 类型“数据”的消息到达后立即应用本地通知。但是关闭应用程序时不会处理“数据”类型的消息,因此我不得不重用“通知”类型的消息。由于“图标”选项不适用于我正在考虑使用“图像”的 URL,但我只需要充当图标的小图标。有什么方法可以压缩消息,使其隐藏大图像而只显示小图像?
类似于下图中的第二条消息,这个隐藏的大图接收另一条消息。
example image
REST中通知的JSON结构如下:
"to": "fVJq6D9...................................",
"notification":
"title": "Title Message 2",
"body": "Body Message 2",
"image": "http://www.iconarchive.com/download/i65798/hopstarter/bioman/Bioman-Avatar-1-Red.ico"
对于应用程序的构建,我正在使用 Flutter。
【问题讨论】:
【参考方案1】:目前这是不可能的,因为您要动态设置的图标是 setSmallIcon()
设置的小图标,它需要本地存储资源的 id 定义:
/**
* Set the small icon to use in the notification layouts. Different classes of devices
* may return different sizes. See the UX guidelines for more information on how to
* design these icons.
*
* @param icon A resource ID in the application's package of the drawable to use.
*/
public Builder setSmallIcon(int icon)
mNotification.icon = icon;
return this;
您无法获取服务器获取的图像的 id。相反,您可以尝试根据情况创建不同的通知,并在代码中设置相应的小图标。
【讨论】:
它是一个消息应用程序,所以图标会对应一个联系人的头像。我认为将每个联系人的照片存储在手机上并不是最佳选择,因此我想通过 URL 获取它们。当应用程序处于前台时可以毫无问题地创建个性化通知,或者通过 FCM 接收它们并使用此插件 pub.dev/packages/flutter_local_notifications 创建它们来最小化它们,但如果它关闭,则不会收到数据,正如文档中已经警告的那样:(以上是关于如何使用 FCM(Firebase 云消息传递)制作紧凑通知?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firebase 云消息传递 (FCM) 中使用深度链接
如何向 FCM(Firebase 云消息传递)令牌的特定用户发送消息?
如何在 Xamarin.iOS 中使用 FCM(Firebase 云消息传递)发送 iOS 推送通知