APNS(苹果推送通知服务)可靠性

我们的应用使用APNS接收推送通知。 但是,我们的客户声称他们的一些设备没有收到通知,并认为他们'必须'确保通知能够100%交付。 但是我已经在某个地方看到APNS并不是100%可靠的,并且应该有一些情况是通知没有交付的。

我目前很担心我们如何确保APNS随时能够收到。 我已经读过可能APNS未交付的情况(设备可能不在线)。 但是我们的测试显示,即使设备在线(Wifi或3G),有时APNS也未交付。

APNS是否会有任何特殊情况发生? 或者我们(开发人员)可以使用代码来确保接收所有通知? 我在代码中所做的只是将应用程序注册到远程通知,然后写入didRegisterForRemoteNotificationsWithDeviceToken,然后将设备令牌扔到我们的服务器。

任何帮助将不胜感激,因为我们的客户几乎杀了我们,如果他们的设备都没有收到APNS!


  • APNS基于Apple服务器,Apple不保证成功发送消息。
  • 如果应用程序在通知到达时打开(即用户正在使用应用程序),iOS不会显示通知消息,您需要处理它。
  • 只有当应用程序背景或死亡时,通知才会显示。
  • 同时在您的服务器端实施反馈服务; 将帮助您摆脱旧的不需要的令牌(通过设置删除应用或禁用通知的用户)。
  • 不要在短时间内向设备发送太多通知,因为APNS只缓存1条消息/设备(如果设备处于脱机状态)。 所以它可以在设备联机时传递消息。 我不确定邮件缓存多长时间。
  • 或者只是实现Pusher ... http://pusher.com


    我们正面临同样的问题。 正如大家所说,APNS是一种尽力而为的服务,所以你不能确定每个通知都会被传送,但是你可以做的是确定收到哪些通知。 这就是我们要做的。 我们在我们的后端注册每个通知报告,移动应用报告它收到的每个通知。 然后我们设置等待收到通知的最长时间,如果我们没有收到报告,我们再试一次。

    我希望这可能对某人有帮助(甚至2年后)


    它在Apple Docs中非常明确地表示,它不是100%保证的,也不应该如此使用。 它以“尽力而为”发送。

    链接地址: http://www.djcxy.com/p/62607.html

    上一篇: APNS (Apple Push Notification Service) reliability

    下一篇: Duplicate Apple APNS push notifications?