我们的应用使用APNS接收推送通知。但是,我们的客户声称他们的一些设备没有收到通知,并声称他们“必须”确保通知100%交付。但我已经阅读somewhere,APNS并非100%可靠,并且应该存在未通知通知的情况。
我目前对如何确保随时收到APNS感到恐慌。我已经阅读了a case可能未提供APNS(设备可能离线)。但我们的测试表明即使设备在线(Wifi或3G),有时APNS也没有交付。
是否有任何特定案例可能无法提供APNS?或者我们(开发人员)可以使用代码来确保接收所有通知吗?我在代码中所做的只是将应用程序注册到远程通知并写入didRegisterForRemoteNotificationsWithDeviceToken,然后将设备令牌丢弃到我们的服务器。
任何帮助都将不胜感激,因为如果他们的所有设备都没有接收APNS,我们的客户几乎会杀了我们!
答案 0 :(得分:45)
或者只是实施Pusher ...... http://pusher.com
答案 1 :(得分:8)
我们面临着同样的问题。正如大家所说,APNS是尽力而为服务,因此您不能确定每个通知都会被传递,但您可以做的是确定已收到哪些通知。这就是我们即将要做的事情。我们在后端注册每个通知que ship ,移动应用程序会报告它收到的每个通知。然后我们设置等待收到通知的最长时间,如果我们没有收到报告,我们会再试一次。
我希望它可能对某人有帮助(甚至2年后)
答案 2 :(得分:3)
它在Apple Docs中非常清楚地表明它不是100%保证,也不应该如此使用。它以“尽力而为”的方式发送。
答案 3 :(得分:0)
根据Apple的指导原则,APNS不是100%可靠的服务,这意味着您的应用可能无法获得Apple服务器的推送通知,原因如下:
注意:Apple拒绝使用通知服务强制使用的应用。 (我在我的一个应用程序中遇到过它)
有关详细信息,请查看此答案