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

时间:2015-09-21 08:45:00

标签: ios google-cloud-messaging apple-push-notifications

因此,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\"}]}"

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

非常感谢任何帮助!

谢谢!

2 个答案:

答案 0 :(得分: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,
} 

我真的希望这可以帮助别人,因为我已经花了一周的时间来解决这个问题。

(ノಠ益ಠ)ノ

修改

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

答案 1 :(得分:1)

而不是添加"优先级" :10, 您应该添加以下行: " content_available" :是的,

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