当应用程序处于后台时,没有使用 Firebase 调用 didReceiveRemoteNotification
Posted
技术标签:
【中文标题】当应用程序处于后台时,没有使用 Firebase 调用 didReceiveRemoteNotification【英文标题】:When app is in background didReceiveRemoteNotification not called with Firebase 【发布时间】:2017-06-23 15:23:56 【问题描述】:我使用 Firebase 发送这个 JSON:
"data":
,
"priority": "high",
"to": "xxxxx",
"content-available": "true",
"notification":
"body": "HI!",
"title": "FCM Message",
"badge": 1,
"sound": "Default"
但didReceiveRemoteNotification:fetchCompletionHandler
在应用处于后台时不会被调用。
我启用后台模式 - 来自功能的远程通知。
有什么建议吗?
【问题讨论】:
【参考方案1】:您的 content-available 键/值不正确。键是content_available
(下划线,不是破折号),值是布尔值,而不是字符串:
"data":
,
"priority": "high",
"to": "xxxxx",
"content_available": true, // <= CHANGED
"notification":
"body": "HI!",
"title": "FCM Message",
"badge": 1,
"sound": "Default"
见Table 1 of the HTTP Server Protocol document:
在 ios 上,使用此字段表示 APN 中的可用内容 有效载荷。当发送通知或消息并将其设置为 是的,一个非活动的客户端应用程序被唤醒。在 android 上,数据消息唤醒 默认情况下的应用程序。在 Chrome 上,目前不支持。
【讨论】:
这是 Firebase 生成的!在服务器端,您设置 ContentAvailable 属性和由 Firebase 库控制的名称。【参考方案2】:确保打开远程通知的后台模式,如果没有,请单击工作区并进入功能并打开后台模式
如图所示,远程通知的最后一个选项选中此选项
【讨论】:
以上是关于当应用程序处于后台时,没有使用 Firebase 调用 didReceiveRemoteNotification的主要内容,如果未能解决你的问题,请参考以下文章
FIREBASE_MESSAGING:当应用程序处于后台或终止时,onBackgroundMessage 不处理通知