【问题标题】:Push notification doesn't pop up on Android推送通知不会在 Android 上弹出
【发布时间】:2021-03-08 20:09:05
【问题描述】:

我正在创建使用 FCM 发送推送通知的颤振应用程序。我通过向设备发送 JSON 来从网站发送带有 Cloud Functions 的通知。然而,这在 iOS 上完美运行(弹出通知)在 Android 上我得到声音并且通知只出现在状态栏中。关于如何让它弹出的任何建议?

这是我发送的 JSON:

{
    "message":{
        "token" : result,
        "notification" : {
            "body" : body,
            "title" : title,
        },
        "data": {
            "body": body,
            "title": title
        },
        "apns": {
            "headers": {
                'apns-priority': '10',
            },
            "payload": {
                "aps": {
                    "sound": 'default',
                }
            },
        },
        "android": {
            "priority": 'high',
            "notification": {
                "sound": 'default',
            }
        },
    }
}

【问题讨论】:

  • 能否分享您编写的云函数并指出您是如何发送推送通知的?请分享最少的可重复步骤,以更好地帮助您。另外请查看以下Firebase Official Documentation 以向多个设备发送消息。

标签: android firebase flutter google-cloud-functions firebase-cloud-messaging


【解决方案1】:

您正确设置了“优先级”:“高”,但我认为这可能是 FCM 降低优先级的情况。这是来自FCM Documentation

高优先级消息通常会导致用户与您的应用或其通知进行交互。如果 FCM 检测到他们没有检测到的模式,您的消息可能会被取消优先级。

如果您的应用程序在前台,您可以通过将 NotificationChannel 优先级和 NotificationBuilder 中的通知优先级设置为高优先级来实现所需的行为。如果应用在前台,则通知由扩展的 FirebaseMessagingService 创建,并且可以设置优先级。

但如果应用处于后台或关闭状态,则通知由系统的通知托盘创建。

这适用于同时发送 notificationdata 对象。

可能的解决方案是仅发送data 对象(不发送notification 对象)。像这样,通知总是由 FirebaseMessagingService 创建。应用程序是在前台还是在后台或关闭。见此表this table

【讨论】:

    猜你喜欢
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多