在 iOS 9.2 上无法接收 FCM 主题消息

Posted

技术标签:

【中文标题】在 iOS 9.2 上无法接收 FCM 主题消息【英文标题】:Unable to receive FCM Topic Messaging on iOS 9.2 【发布时间】:2018-06-08 08:24:42 【问题描述】:

我编写的应用程序使用 FCM 主题按摩来接收来自服务器的推送通知。

我的 HTTP 请求是:

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

"to":"/topics/Foo-bar",
"priority":"high",
"content_available": true,
"data":
    "notification-type":"chat",
    "target":"Current User",
    "title":"Current User has sent you a message",
    "text": "hello1",
    "badge": 5  //Badge you want to show on app icon
   

我得到的回应是:


"message_id": 6199072048907273657
 

但它没有在设备上收到通知。

以及如何在调试器中打印通知数据??

【问题讨论】:

响应表示消息发送成功。您能否验证设备是否订阅了该主题? 是的,它已订阅主题 你能为我做点什么吗?首先,从 Firebase 控制台向特定设备的令牌发送消息。在消息中包含数据有效负载。在应用程序处于前台时发送消息。 onMessageReceived 是否执行了预期的操作?然后在应用程序处于后台时发送消息。你收到通知了吗?这将排除客户端的问题。现在,您显示的有效负载是用于纯数据消息的。您是否也打算在有效负载中包含通知?如果是这样,您需要在有效负载中包含"notification" 键。 从 firebase 控制台到应用程序被杀死时它正在工作的特定主题。在应用程序处于前台时发送消息。 onMessageReceived 是否执行预期的操作? - 在这两种情况下它都在工作我只想使用与前台和后台一起工作的“数据”有效负载来使用数据有效负载 【参考方案1】:

有效载荷应该是这样的。代替数据使用通知对象。


"to":"/topics/test",
"notification":
    "type":"test",
    "title":"test!",
    "message":"test"
     

【讨论】:

以上是关于在 iOS 9.2 上无法接收 FCM 主题消息的主要内容,如果未能解决你的问题,请参考以下文章

无法接收 FCM 推送通知 IOS - 目标 C

iOS 无法通过 FCM 接收推送通知(可以通过 APNs)

添加 FCM 支持后,本地通知在 iOS 上停止工作

如何在 Xamarin.iOS 中使用 FCM(Firebase 云消息传递)发送 iOS 推送通知

IOS 应用程序中的 Firebase 云消息传递 (FCM) 无法正常工作

FCM 主题缓存在旧令牌上 - 用户仍然收到推送