首页 文章

App ios关闭时GCM不发送通知

提问于
浏览
3

我正在使用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 回答

  • 1

    始终显示前景推送(即,用于用户的那些) . 如果应用程序已被杀死,则不会向应用程序发送后台推送(即用于应用程序的那些) . 你的推送有效载荷不知道它是什么 - 它是一个混合物,它有一个前景推送所具有的正文/ Headers /声音,但它也有内容可用,用于背景推送 .

    确定您的推送是前景还是背景推送,然后相应地从您的有效负载中删除不必要的部分 .

    同样从iOS 8.1(或8.2我忘了哪个)开始,如果应用程序位于前台,或者如果它在后台和设备正在充电,则背景推送将立即传送到应用程序(注意,这包括连接到一个mac通过usb) . 如果应用程序在后台并且未收费,那么推送可能需要几个小时才能传送到应用程序 .

  • 0

    如果用户从切换台中杀死了iOS应用程序,它将不会收到推送通知 . 这是Apple故意实施的操作系统,因此没有解决方法 .

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

  • 0

    我们在尝试向GCM主题发送消息时遇到此问题,所有Android设备都正确地获取消息,但不是应用程序被杀死的ios . 解决了在 datanotification 对象中发送消息的问题 . 别忘了优先考虑高!!

    示例Json:

    {"to":"/topics/xxx",
     "collapse_key":"",
     "data":{"message":"topic notification"},
     "notification":{"body":"topicotification"},
     "time_to_live":3600,
     "content_available":true,
     "priority":"high"}
    

相关问题