Firebase 消息不适用于 iOS 中的“数据”消息

Posted

技术标签:

【中文标题】Firebase 消息不适用于 iOS 中的“数据”消息【英文标题】:Firebase messaging not working for "data" messages in iOS 【发布时间】:2016-10-12 17:00:24 【问题描述】:

我有一个在 ios 9.3.5 上运行的应用程序。当我的应用程序处于前台或后台时,我需要能够向它发送推送通知。我实际上不需要包含任何数据,我只需要 ping 应用程序,它就会“phone home”。所以我不需要/不希望用户看到任何通知。

由于该公司已经在他们的 android 应用中使用 Firebase,我已经在 iOS 应用中进行了设置。如果我使用有效负载中的notification 键向https://fcm.googleapis.com/fcm/send 发送消息,则它会在iPhone 上收到。当我改用data 键尝试它时,我什么也得不到。在这两种情况下,我都会收到来自 POST 的 success 响应。我已经实现了以下回调:

application:didReceiveRemoteNotification:
userNotificationCenter:willPresentNotification:withCompletionHandler:
applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage

使用data 键发送消息时不会调用这些。

编辑: 这是我正在使用的有效负载。

“数据”: “消息”:“电话之家”, , “到”:“xxxxx”

在进行更多测试后,当应用程序处于前台而不是后台时,我似乎收到了该消息。当我切换到前台时,application:didReceiveRemoteNotification: 会被调用。

编辑 2:添加了 content_available,这就成功了。谢谢!

"to" : "xxxx", "content_available" : true

【问题讨论】:

猜猜我的建议奏效了。我删除了我的评论并对其进行了一些修改并将其添加为答案。 【参考方案1】:

如果没有示例有效负载,建议有点困难,但是,请尝试使用priority 参数作为highcontent_availabletrue

【讨论】:

以上是关于Firebase 消息不适用于 iOS 中的“数据”消息的主要内容,如果未能解决你的问题,请参考以下文章

iOS 未收到来自 Firebase 云消息传递的通知

Flutter Firebase 动态链接不适用于新的 ios 应用安装

Firebase 不适用于 iOS 的生产版本

ios UIApplicationOpenURLOptionsKey 不适用于 Firebase

iOS:Firebase 通知不适用于用户段

firebase 动态链接预览链接不适用于 facebook Messenger