通知纸盘中不显示Apple多个推送通知
我基本上想要在iOS中的通知托盘中显示同一应用程序中的多个推送通知。
如果我的数据是打开的,而推送通知是通过APNS触发的,但是只有最近的一个在我离线的情况下才会收到,并且在一段时间之后回来。 此function由APNS文档确认。
但是,这是WhatsApp的工作原理:
- closures数据连接
- 发送一些消息给WhatsApp
- 打开数据连接
- 查看苹果通知托盘中收到的多个推送通知
这种情况如何工作? 我可以使用APNS吗? 如果是,那么如何?
查看微信中多个推送通知的示例图片 。
就像你在你的问题中写的那样,这在Apple Docs中提到:
如果您要在短时间内向同一设备或计算机发送多个通知,推送服务将只发送最后一个通知。
链接
你所描述的唯一的情况是,如果你的WhatsApp在后台打开,同时得到push notifications
。 这样whatsApp将处理它们作为local notifications
,并将在通知中心呈现所有这些。 如果whatsApp被closures,你只会得到像任何其他应用程序的最后通知。
你可以很容易地testing这个:
- 终止whatsApp并打开
Airplane mode
。 - 从1到5发送您的设备5消息。
- closures
Airplane mode
并locking设备。 - 你只能在你的
notifications center
看到一个味精(你发送的最后一个“5”)。
这就是whatsApp如何使其工作:
当whatsApp在后台时,收到单个推送通知(用户发送的最后一个通知,在我们的例子中是“5”)。 该味精不会显示给用户。
application:didReceiveRemoteNotification:fetchCompletionHandler:
在方法application:didReceiveRemoteNotification:fetchCompletionHandler:
接收它application:didReceiveRemoteNotification:fetchCompletionHandler:
并检查是否存在用户未收到“5”之前的任何通知。 如果是这样的话,他们会从服务器上获取这些数据,并使用local notifications
向用户展示这些数据,这些local notifications
基本上只是一种呈现数据而与APNS无关的方式。
在推送通知疑难解答中进行了解释。 检查“收到一些通知,但不是全部”部分。
如上所述,您无法控制这些推送通知。
不过你可能知道,从iOS7开始,一个新的后台执行模式( 远程通知 )允许应用程序在收到一个推送时被系统唤醒,允许你处理一些数据,然后回到睡眠状态。
这可能是诀窍:使用这种方式接收推送通知(无声),然后触发您自己的本地通知,而不是@Segev说。 在这里看UIBackgroundModes 。