2015-08-25 68 views
3

我正在使用GCM向Android和IOS设备发送通知。当应用程序ios关机时,GCM不发送通知

在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的特定配置?

非常感谢,因为我卡住了。

Michael

+2

的可能的复制[iOS应用程式的GCM支持时,应用程序在后台或杀死(HTTP://计算器。COM /问题/ 30883607/GCM支持换IOS-应用时,应用程序在背景,或杀死)。 – Mogsdad

回答

0

如果iOS应用程序被用户从切换器中击中,它将不会收到推送通知。这是苹果有意实施的操作系统,所以没有解决方法。

更多信息可以在这里找到(需要登录):https://devforums.apple.com/message/873265#873265

+0

我也试过这个用例。即使应用程序被手动终止,通知也会直接使用APNS显示。 它看起来不再与IOS 8的情况。 我认为它更涉及到GCM <-> APNS(因为绕过GCM收到通知)。 –

1

前景推(即那些旨在针对用户)总是显示。如果应用程序已被杀死,后台推送(即针对应用程序的推送)不会发送到应用程序。 您的推送有效载荷不知道它是什么 - 它是一种混合物,它具有前景推送可能具有的主体/标题/声音,但它也具有用于背景推送的内容。

决定您的推送应该是前台还是后台推送,然后相应地从您的有效负载中剔除不必要的部分。

也从iOS 8.1(或8.2我忘记了哪个)开始,如果应用程序处于前台,或者如果它在后台并且设备正在充电,背景推送将只会立即传送到应用程序(注意,此包括通过USB连接到Mac)。 如果应用程序处于后台并且未收取应用程序,则可能需要几个小时才能将应用程序传递到应用程序。

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"} 
相关问题