首页 文章

当APNS仅存储一个以防设备脱机时,whatsapp如何接收多个通知?

提问于
浏览
11

根据官方Apple文档,如果设备处于脱机状态,APNS(Apple推送通知服务)仅存储最后一个通知 .

Apple推送通知服务包括执行存储转发功能的默认服务质量(QoS)组件 . 如果APN尝试发送通知但设备处于脱机状态,则QoS会存储通知 . 它在设备上每个应用程序仅保留一个通知:从该应用程序的提供程序收到的最后一个通知 . 当离线设备稍后重新连接时,QoS将存储的通知转发到设备 . QoS会在删除之前保留有限时间段内的通知 .

那么当设备上线时,whatsapp等应用程序如何从多个用户发送消息?如果设备在线,这些消息将作为单独的通知收到 .

2 回答

  • 6

    似乎在iOS 8上有这个问题的更新,即使您的用户手动杀死它,您的应用也会因为推送而在后台唤醒 . 看看这个:Wake your app in the background using PushKit in iOS8 .

    这意味着您可以向您的应用发送通知,一旦重新连接,它将被操作系统唤醒,并能够与您的服务器通信 . 然后,您可以实现逻辑以将其在设备脱机时丢失的所有推送消息发送给它 .

    我不得不承认我还没有尝试过,但听起来这可能是你所描述的问题的解决方案 .

  • 2

    由于您在设备脱机时发送的每个通知都会有效地覆盖现有通知,因此您有两种方法可以解决此问题:

    • 包括设备在每个通知中都不知道的所有消息(因此您将包含消息A的通知替换为包含消息A和B的消息) . 您可能会在某个时刻遇到最大大小限制 .

    • 根本不要在通知中包含实际消息 . 当应用程序收到通知时,它可以向服务器请求新消息 .

相关问题