我正在使用谷歌的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似乎也不这样说。
所以,我的问题是:
答案 0 :(得分:0)
基本上根据issue #67和issue #60来回答您的第一个问题,唯一的解决方法是将消息优先级设置为高。有些情况下有效,有些仍然没有收到通知。
对于iOS客户端应用,普通和高优先级类似于APN优先级5和10.有关iOS特定行为的完整详细信息,请参阅APNs documentation。
通知的优先级。指定以下值之一:
10 - 立即发送推送消息。具有此优先级的通知必须在目标设备上触发警报,声音或徽章。将此优先级用于仅包含内容可用密钥的推送通知是错误的。
5 - 在考虑设备电源注意事项的时间发送推送消息。具有此优先级的通知可能会分组并以突发方式传递。它们被限制,在某些情况下不会被交付。 如果省略此标头,则APNs服务器将优先级设置为10.
您可以尝试设置APN优先级并检查github中的问题跟踪器。
我希望它可以帮到你。