通知纸盘中不显示Apple多个推送通知

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

如果我的数据是打开的,而推送通知是通过APNS触发的,但是只有最近的一个在我离线的情况下才会收到,并且在一段时间之后回来。 此function由APNS文档确认。

但是,这是WhatsApp的工作原理:

  1. closures数据连接
  2. 发送一些消息给WhatsApp
  3. 打开数据连接
  4. 查看苹果通知托盘中收到的多个推送通知

这种情况如何工作? 我可以使用APNS吗? 如果是,那么如何?

查看微信中多个推送通知的示例图片 。

就像你在你的问题中写的那样,这在Apple Docs中提到:

如果您要在短时间内向同一设备或计算机发送多个通知,推送服务将只发送最后一个通知。

链接

你所描述的唯一的情况是,如果你的WhatsApp在后台打开,同时得到push notifications 。 这样whatsApp将处理它们作为local notifications ,并将在通知中心呈现所有这些。 如果whatsApp被closures,你只会得到像任何其他应用程序的最后通知。

你可以很容易地testing这个:

  1. 终止whatsApp并打开Airplane mode
  2. 从1到5发送您的设备5消息。
  3. closuresAirplane mode并locking设备。
  4. 你只能在你的notifications center看到一个味精(你发送的最后一个“5”)。

这就是whatsApp如何使其工作:

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

application:didReceiveRemoteNotification:fetchCompletionHandler:在方法application:didReceiveRemoteNotification:fetchCompletionHandler:接收它application:didReceiveRemoteNotification:fetchCompletionHandler:并检查是否存在用户未收到“5”之前的任何通知。 如果是这样的话,他们会从服务器上获取这些数据,并使用local notifications向用户展示这些数据,这些local notifications基本上只是一种呈现数据而与APNS无关的方式。

在推送通知疑难解答中进行了解释。 检查“收到一些通知,但不是全部”部分。

如上所述,您无法控制这些推送通知。

不过你可能知道,从iOS7开始,一个新的后台执行模式( 远程通知 )允许应用程序在收到一个推送时被系统唤醒,允许你处理一些数据,然后回到睡眠状态。

这可能是诀窍:使用这种方式接收推送通知(无声),然后触发您自己的本地通知,而不是@Segev说。 在这里看UIBackgroundModes 。