ios - Apple Multiple Push Notifications 在通知托盘中不可见

标签 ios push-notification apple-push-notifications apns-php

我基本上想在 iOS 的通知托盘中显示同一个应用程序中的多个推送通知。

如果在通过 APNS 触发推送通知时我的数据处于打开状态,则此方案有效,但仅收到最新的一个,以防我离线并在一段时间后回来。 APNS 文档确认了此功能。

然而,这是在 WhatsApp 中起作用的:

  1. 关闭数据连接
  2. 向 WhatsApp 发送了一些消息
  3. 打开数据连接
  4. 看到在 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.

Link

您所描述的唯一情况是,如果您的 whatsApp 在后台打开,同时收到那些推送通知。这样,whatsApp 会将它们作为本地通知 进行处理,并将所有这些通知都显示在通知中心。如果 whatsApp 已关闭,您将像任何其他应用程序一样仅收到最后通知。

你可以很容易地测试这个:

  1. 终止 whatsApp 并打开飞行模式
  2. 从 1 到 5 向您的设备发送 5 条消息。
  3. 关闭飞行模式并锁定您的设备。
  4. 您只会在通知中心中看到一条消息(您发送的最后一条消息也称为“5”)。

这就是 whatsApp 的运作方式:

当 whatsApp 在后台时,会收到一个推送通知(用户发送的最后一个通知,在我们的示例中为“5”)。该消息不会显示给用户。

whatsApp 在方法 application:didReceiveRemoteNotification:fetchCompletionHandler: 中接收它,并检查他们的服务器是否有任何用户未收到的“5”之前的通知。如果是这种情况,他们将从他们的服务器中提取数据,并使用 local notifications 将其呈现给用户,这基本上只是一种呈现数据的方式,与 APNS 完全无关。

关于ios - Apple Multiple Push Notifications 在通知托盘中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28502268/

相关文章:

ios - 像 sleep 周期一样的闹钟 ios swift

iphone - 如何让 iOS 应用程序启动强制门户(热点登录)?

Ios 应用程序未通过 FCM 控制台接收消息

ios - “证书 bundleId 与您应用的证书不匹配”Firebase 云消息传递

ios - swift + WKWebView : How to prevent visits to certain URLs?

ios - 你如何在 swift 中从 JSON 中排序 NSMutableArray?

ios - 收到远程通知时是否有对应用程序委托(delegate)的回调?

c# - 没有互联网的移动通知(仅限本地网络)

ios - Apple 推送通知响应 IP 地址

push-notification - Pushwoosh 应用程序 ID 字符串值