我正在使用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?
非常感谢,因为我被困住了。
迈克尔
答案 0 :(得分:1)
始终显示前景推送(即用于用户的那些)。如果应用程序已被杀死,则不会向应用程序发送后台推送(即用于应用程序的那些)。 你的推送有效载荷不知道它是什么 - 它是一个混合物,它有一个前景推送所具有的正文/标题/声音,但它也有内容可用,用于背景推送。
确定您的推送是前景还是背景推送,然后相应地从您的有效负载中删除不必要的部分。
同样从iOS 8.1(或8.2我忘了哪个)开始,如果应用程序位于前台,或者如果它在后台和设备正在充电,则背景推送将立即传送到应用程序(注意,这包括通过usb连接到mac)。 如果应用程序在后台并且未收费,那么推送可能需要几个小时才能传送到应用程序。
答案 1 :(得分:0)
如果某个iOS应用程序被用户从切换台中杀死,它将不会收到推送通知。这是Apple故意实施的操作系统,因此无法解决。
可在此处找到更多信息(需要登录):https://devforums.apple.com/message/873265#873265
答案 2 :(得分:0)
我们在尝试向GCM主题发送消息时遇到此问题,所有Android设备都正确获取消息,但不是应用程序被杀死的ios消息。解决了在数据和通知对象中发送消息的问题。别忘了优先考虑高!!
示例Json:
{"to":"/topics/xxx",
"collapse_key":"",
"data":{"message":"topic notification"},
"notification":{"body":"topicotification"},
"time_to_live":3600,
"content_available":true,
"priority":"high"}