我基本上想在 iOS 的通知托盘中显示同一个应用程序中的多个推送通知。
如果在通过 APNS 触发推送通知时我的数据处于打开状态,则此方案有效,但仅收到最新的一个,以防我离线并在一段时间后回来。 APNS 文档确认了此功能。
然而,这是在 WhatsApp 中起作用的:
- 关闭数据连接
- 向 WhatsApp 发送了一些消息
- 打开数据连接
- 看到在 Apple 的通知托盘中收到了多个推送通知
这种情况如何运作?我可以为此使用 APNS 吗?如果是,那么如何?
参见 this sample image微信中的多个推送通知。
最佳答案
就像您在问题中所写的那样,Apple 文档中提到了这一点:
If you are sending multiple notifications to the same device or computer within a short period of time, the push service will send only the last one.
您所描述的唯一情况是,如果您的 whatsApp 在后台打开,同时收到那些推送通知
。这样,whatsApp 会将它们作为本地通知
进行处理,并将所有这些通知都显示在通知中心。如果 whatsApp 已关闭,您将像任何其他应用程序一样仅收到最后通知。
你可以很容易地测试这个:
- 终止 whatsApp 并打开
飞行模式
。 - 从 1 到 5 向您的设备发送 5 条消息。
- 关闭
飞行模式
并锁定您的设备。 - 您只会在
通知中心
中看到一条消息(您发送的最后一条消息也称为“5”)。
这就是 whatsApp 的运作方式:
当 whatsApp 在后台时,会收到一个推送通知(用户发送的最后一个通知,在我们的示例中为“5”)。该消息不会显示给用户。
whatsApp 在方法 application:didReceiveRemoteNotification:fetchCompletionHandler:
中接收它,并检查他们的服务器是否有任何用户未收到的“5”之前的通知。如果是这种情况,他们将从他们的服务器中提取数据,并使用 local notifications
将其呈现给用户,这基本上只是一种呈现数据的方式,与 APNS 完全无关。
关于ios - Apple Multiple Push Notifications 在通知托盘中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28502268/