Ios WhatsApp如何绕过APNS限制来显示设备脱机时收到的多条推送消息?

Ios WhatsApp如何绕过APNS限制来显示设备脱机时收到的多条推送消息?,ios,push-notification,firebase-cloud-messaging,apple-push-notifications,whatsapp,Ios,Push Notification,Firebase Cloud Messaging,Apple Push Notifications,Whatsapp,在使用APN时,我能够让推送通知在设备在线时完美地工作 对于我在设备脱机时发送的任何APNS推送,只有在设备恢复联机后才会接收最后一个APNS推送。这似乎与苹果的做法一致 但是-我注意到,当向脱机设备发送WhatsApp消息时,一旦该设备联机,它将接收所有推送通知(每条消息一个)。这不是基于折叠标识符,而是针对每条消息的独立推送通知 那么WhatsApp是如何做到的呢 已尝试使用通知扩展并尝试发布多个本地通知,但这也失败,因为不允许扩展这样做。请使用不会显示任何可见内容,但会在后台唤醒您的应用程

在使用APN时,我能够让推送通知在设备在线时完美地工作

对于我在设备脱机时发送的任何APNS推送,只有在设备恢复联机后才会接收最后一个APNS推送。这似乎与苹果的做法一致

但是-我注意到,当向脱机设备发送WhatsApp消息时,一旦该设备联机,它将接收所有推送通知(每条消息一个)。这不是基于折叠标识符,而是针对每条消息的独立推送通知

那么WhatsApp是如何做到的呢


已尝试使用通知扩展并尝试发布多个本地通知,但这也失败,因为不允许扩展这样做。

请使用不会显示任何可见内容,但会在后台唤醒您的应用程序的普通推送通知。使用此事件,进行api调用,获取相关数据并生成多个本地通知

实施时,请注意文档中的以下内容:

  • 当应用程序在前台或后台运行时,系统调用此方法
  • 如果用户强制退出应用程序,系统不会自动启动应用程序
  • 您必须调用处理程序参数(
    fetchCompletionHandler
    )中的块,否则您的应用程序将被终止。你的应用程序 最多有30秒的挂钟时间来处理通知 并调用指定的完成处理程序块
  • 在处理远程通知时使用大量电源的应用程序可能不会总是在处理未来的通知时提前唤醒 通知

在做出您认为应该如何运作的任何假设之前,请完整阅读相关文档。

我之前已经研究过背景通知,交易的破坏者是这一部分:“系统将后台通知视为低优先级:您可以使用它们刷新应用程序的内容,但系统不保证它们的传递。此外,如果总数过多,系统可能会限制后台通知的传递。系统允许的后台通知数量取决于当前情况,但不要尝试每小时发送超过两到三次。“这在聊天信息更为频繁的情况下不起作用。请参阅该帖子中的答案参考PushKit(voip推送通知),这是因为iOS 13必须处理呼叫,并且不能用于聊天信息(请参见此处:)等目的。其他答案指的是后台推送,同样,每小时只能接收几次。