【问题标题】:Heads up notification using FCM使用 FCM 的抬头通知
【发布时间】:2018-04-07 22:37:05
【问题描述】:

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

你有什么想法吗?

【问题讨论】:

标签: android push-notification firebase-cloud-messaging heads-up-notifications


【解决方案1】:

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

How to handle notification when app in background in Firebase

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

  2. 如果您使用的是 Firebase Cloud Functions,请检查您发送的信息是否在数据负载中,如果您想提醒您,应该删除通知负载通知上班。拥有通知负载将默认仅在通知托盘上显示一个小图标。

希望这条信息对您有所帮助,祝您编码愉快。

【讨论】:

  • 并确保您进入应用的“应用信息”-> 通知通道(例如,“杂项”)->“屏幕弹出”已打开,否则只有通知托盘中的图标将继续显示。
【解决方案2】:

我使用 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){...

【讨论】:

    【解决方案3】:

    请按照以下步骤..

    现在只需点击下一步,使用默认设置执行以下两个步骤

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

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

    【讨论】:

    • 这很有用@Asad
    【解决方案4】:

    无论您调用什么平台的 firebase,您所需要的只是将 Title 和 Body 字段添加到 Notification Android 内,当然还有 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"
                        },
                    },
                };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2021-09-15
      • 2023-03-22
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多