当收到来自 Firebase Cloud Messaging 的推送时,我们有什么方法可以显示抬头通知吗?在前台可以使用Notification。但是,当应用程序在后台时,无法显示抬头通知,因为 onMessageReceived 没有调用。
我试图将优先级设置为“高”,但没有结果。
你有什么想法?
问问题
6303 次
4 回答
4
在 stackoverflow.com 浏览了多个解决方案后,我发现下面的解释最有帮助
在您的 Android OnMessageReceived 函数/方法中,只有 Data Payload (RemoteMessage.getData) 会在 App 处于后台时触发您的自定义通知,例如抬头通知。通知负载 (RemoteMessage.getNotification)不会触发您的提醒通知,而是默认在通知托盘上仅显示一个小图标。
如果您使用 Firebase Cloud Functions,请检查您发送的信息是否在数据负载中,如果您希望抬头通知正常工作,则应删除通知负载。拥有通知负载将默认仅在通知托盘上显示一个小图标。
希望这条信息对您有所帮助,并祝您编码愉快。
于 2018-04-05T03:45:01.917 回答
1
我使用 node.js 作为我的服务器平台。诀窍是删除“通知”字段并将“标题”和“正文”字段移动到“数据”。就我而言,我改变了:
var message = {
token: targetID,
android:{
priority: 'high'
},
notification: {
title: 'X',
body: req.body.msg
},
data: {
topic: req.body.topic
}
};
至
var message = {
token: targetID,
android:{
priority: 'high'
},
data: {
topic: req.body.topic,
title: 'X',
body: req.body.msg
}
};
然后...
fcm.send(message, function(err, response){...
于 2019-11-28T09:09:43.687 回答
0
无论您调用什么平台 firebase,您所需要的只是将 Title 和 Body 字段添加到Android 内的 Notification 中,当然还有 Priority = High
var aMessage = new Message
{
Topic = "atopic",
Notification = new Notification { Body = body, Title = title },
Data = new Dictionary<string,string> { { "ReferenceId", refId.ToString() } },
Android = new AndroidConfig
{
Priority = Priority.High,
Notification = new AndroidNotification
{
Body = body,
Title = title,
Color = "#ffcc00",
Icon = "ic_notification",
Sound = "default",
ChannelId = "my_notification_channel"
},
},
};
于 2020-02-08T08:57:48.670 回答