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

Nic*_*ten 10 apple-push-notifications ios google-cloud-messaging

所以我遇到了一个非常奇怪的问题,就是Google Cloud Messaging.我遇到的问题是它正在成功注册设备,当发送消息时,我收到来自Google的成功消息.但设备从未收到任何消息.

我从GCM回来的消息是:

"result": "Push notification sent successfully: {\"multicast_id\":6008387530769664000,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1442824842607522%73fc535e73fc535e\"}]}"
Run Code Online (Sandbox Code Playgroud)

为了让事情变得更加混乱,我的实施大约在两周前开始工作,到目前为止我还没有改变任何东西.Android版本的应用程序正在接收消息,没有问题,只有iOS实现无法正常工作.

任何帮助将非常感激!

谢谢!

Nic*_*ten 12

所以我终于把最后剩下的毛发拉出脑袋后解决了这个问题.

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

低优先级推送:[com.test.app] - 不支持后台刷新

优先级是介于1和10之间的值,因此我将优先级设置为10并立即在设备上获取消息.我的GCM POST请求正文现在看起来像这样:

{
  "to": "GCM token here",
  "notification": {
    "sound": "default",
    "badge": "2",
    "title": "default",
    "body": "Test Push!",
  },
   "priority" : 10,
} 
Run Code Online (Sandbox Code Playgroud)

我真的希望这有助于其他人,因为我已经花了一周的时间来解决这个问题.

(ノಠ益ಠ)ノ

编辑:

您可以将"priority"设置为"high",其设置与将其设置为"10"完全相同(优先级为0到10之间的值.Google将文本转换为iOS的数字