Google 云消息显示成功消息但未发送 iOS

Google Cloud Messaging showing success message but not sending iOS

所以我 运行 遇到了一个关于 Google 云消息传递的非常奇怪的问题。我遇到的问题是它正在成功注册设备,并且在发送消息时我从 Google 收到一条成功消息。但是设备永远不会收到任何消息。

我从 GCM 收到的消息是:

"result": "Push notification sent successfully: {\"multicast_id\":6008387530769664000,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1442824842607522%73fc535e73fc535e\"}]}"

让事情变得更加混乱的是,我的实现在大约 2 周前就开始工作了,到目前为止我没有做任何更改。应用程序的 Android 版本可以毫无问题地接收消息,只是 iOS 实现不起作用。

如有任何帮助,我们将不胜感激!

谢谢!

所以我把最后剩下的头发从头上拔下来后终于解决了这个问题。

原来设备正在接收消息,但 GCM 默认将优先级设置为最低优先级。这意味着设备收到通知但从不显示它。此优先级用于静默通知以在后台唤醒应用程序。我发现这一点是因为我不断在控制台中收到消息:

Low Priority Push: [com.test.app] - Background Refresh Not Supported

优先级是一个介于 1 和 10 之间的值,所以我将优先级设置为 10 并立即在设备上收到消息。我的 GCM POST 请求正文现在如下所示:

{
  "to": "GCM token here",
  "notification": {
    "sound": "default",
    "badge": "2",
    "title": "default",
    "body": "Test Push!",
  },
   "priority" : 10,
} 

我真的希望这对其他人有帮助,因为我花了一个星期的时间来解决这个问题。

(ノಠ益ಠ)ノ

编辑:

您可以将 "priority" 设置为 "high",这与将其设置为“10”完全相同(优先级是 0 到 10 之间的值。Google 隐藏文本到 iOS

的号码

而不是添加 "priority" : 10, 您应该添加以下行: "content_available":正确,

在 APNS 服务器 (iOS) 中,content_avaialble 更改为 1,导致在后台推送通知。并添加 "priority":10,会消耗更多 iphone 电量。就我而言,我什至没有任何与优先级相关的东西,但它仍然有效。