我正在使用GCM向android和IOS设备发送通知 .
在IOS上,应用程序处于活动状态或在后台运行时会收到通知 .
但是,当应用程序关闭时,不会收到通知 . 我通过直接联系APNS测试并收到消息 . 所以设备上的配置似乎没问题 .
以下是发送给GCM的消息示例:
{"notification":{
"badge":"4",
"body":"Test body",
"sound":"default",
"title":"Test title"
},
"collapse_key": "collapse_1",
"message_id": "1000003",
"content_available":true,
"to": "GCM TOKEN FOR DEVICE"
}
当应用程序处于后台时,会正确接收此消息,但应用程序关闭时则不会 .
我已将应该发送到APNS的假设消息直接发送到APNS:
{"aps":{"alert":{"title":"Title","body":"Body"},"badge":5,
"sound":"default", "content-available":1}}
设备会收到此通知 .
我错过了什么?是否有授权GCM发送给APNS的特定配置?
非常感谢,因为我被困住了 .
迈克尔
3 回答
始终显示前景推送(即,用于用户的那些) . 如果应用程序已被杀死,则不会向应用程序发送后台推送(即用于应用程序的那些) . 你的推送有效载荷不知道它是什么 - 它是一个混合物,它有一个前景推送所具有的正文/ Headers /声音,但它也有内容可用,用于背景推送 .
确定您的推送是前景还是背景推送,然后相应地从您的有效负载中删除不必要的部分 .
同样从iOS 8.1(或8.2我忘了哪个)开始,如果应用程序位于前台,或者如果它在后台和设备正在充电,则背景推送将立即传送到应用程序(注意,这包括连接到一个mac通过usb) . 如果应用程序在后台并且未收费,那么推送可能需要几个小时才能传送到应用程序 .
如果用户从切换台中杀死了iOS应用程序,它将不会收到推送通知 . 这是Apple故意实施的操作系统,因此没有解决方法 .
更多信息可以在这里找到(需要登录):https://devforums.apple.com/message/873265#873265
我们在尝试向GCM主题发送消息时遇到此问题,所有Android设备都正确地获取消息,但不是应用程序被杀死的ios . 解决了在 data 和 notification 对象中发送消息的问题 . 别忘了优先考虑高!!
示例Json: