6

当收到来自 Firebase Cloud Messaging 的推送时,我们有什么方法可以显示抬头通知吗?在前台可以使用Notification。但是,当应用程序在后台时,无法显示抬头通知,因为 onMessageReceived 没有调用。
我试图将优先级设置为“高”,但没有结果。

你有什么想法?

4

4 回答 4

4

在 stackoverflow.com 浏览了多个解决方案后,我发现下面的解释最有帮助

Firebase中应用程序在后台时如何处理通知

  1. 在您的 Android OnMessageReceived 函数/方法中,只有 Data Payload (RemoteMessage.getData) 会在 App 处于后台时触发您的自定义通知,例如抬头通知。通知负载 (RemoteMessage.getNotification)不会触发您的提醒通知,而是默认在通知托盘上仅显示一个小图标。

  2. 如果您使用 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

请按照以下步骤.. 根据需要添加标题和文本

在此处输入图像描述

现在只需在默认设置的两个步骤中单击下一步 在此处输入图像描述

这一步非常重要,这是管理设备系统托盘以显示为提示通知的主要部分。

现在点击评论,然后发布。如果你得到预期的结果,请告诉我。

于 2019-02-26T16:39:01.000 回答
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 回答