为什么APNS仅传递最后一个排队的通知而不传递所有排队的通知?

时间:2019-06-03 11:37:30

标签: ios swift apple-push-notifications

问题陈述:我正在使用voip通知显示本地通知。我正在尝试将通知从Apns发送到离线设备。因此,它将所有未决的通知排队。但是,仅当设备变为 在线。

1 个答案:

答案 0 :(得分:2)

根据Apple文档Link

服务质量,存储转发和合并的通知

  

Apple Push Notification服务包括服务质量(QoS)   执行存储转发功能的组件。如果APNs尝试   发送通知且目标设备处于脱机状态,APN   在有限的时间内存储通知并发送   当设备再次可用时。该组件仅存储   每个设备和每个应用的最新通知。如果设备是   离线,发送针对该设备的通知请求导致   先前的请求将被丢弃。如果设备保持离线状态   很长一段时间,它在APN中存储的所有通知都将被丢弃。

     

要允许合并类似的通知,您可以添加一个   通知请求中的折叠标识符。通常,当   设备处于在线状态,您发送给APN的每个通知请求   导致将通知发送到设备。但是,当   您的HTTP / 2请求标头APN中存在apns-collapse-id密钥   合并该键的值相同的请求。例如,   两次发送相同标题的新闻服务可以使用相同的   两个请求的折叠标识符值。然后,APN将合并   将两个请求合并为一个通知,以传递到   设备。