即使“优先级”设置为高,APP强制退出时iOS上的GCM也不会收到推送通知

时间:2016-04-07 06:42:50

标签: ios google-cloud-messaging

我正在使用谷歌的iOS GCM示例应用程序。 到目前为止,应用程序在应用程序位于前台和后台时工作,即它接收我使用邮递员发送的消息。 但是,当我强制该应用程序退出时,它不再收到我的消息。 我确实将“优先级”参数设置为高,几乎每个人都建议,但强制退出后应用程序仍然没有收到任何消息。

这是我对GCM服务器的JSON:

{
  "notification": {
    "message" : "great match!"
  },
  "data": {
    "msg" : "great match!",
    "title" : "Portugal vs. Denmark"
  },
  "to" : "<MY-TOKEN>",
  "content_available" : true,
  "priority": "high"
}

GCM的回应是:

{
  "multicast_id": 6087504353579807411,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    {
      "message_id": "0:1460007343814475%c3a976d6c3a976d6"
    }
  ]
}

我看到这个question说,当应用程序强制退出时,无法接收推送通知。 但另一方面,issue似乎也不这样说。

所以,我的问题是:

  1. 应用程序被强制退出后,iOS应用程序是否可以接收GCM推送通知?
  2. 如果有可能,那么我可以尝试将“优先级”设置为“高”不起作用。

1 个答案:

答案 0 :(得分:0)

基本上根据issue #67issue #60来回答您的第一个问题,唯一的解决方法是将消息优先级设置为高。有些情况下有效,有些仍然没有收到通知。

  

对于iOS客户端应用,普通和高优先级类似于APN优先级5和10.有关iOS特定行为的完整详细信息,请参阅APNs documentation

     

通知的优先级。指定以下值之一:

     
      
  • 10 - 立即发送推送消息。具有此优先级的通知必须在目标设备上触发警报,声音或徽章。将此优先级用于仅包含内容可用密钥的推送通知是错误的。

  •   
  • 5 - 在考虑设备电源注意事项的时间发送推送消息。具有此优先级的通知可能会分组并以突发方式传递。它们被限制,在某些情况下不会被交付。   如果省略此标头,则APNs服务器将优先级设置为10.

  •   

您可以尝试设置APN优先级并检查github中的问题跟踪器。

我希望它可以帮到你。