交货时是否可以获得远程推送通知的交货收据?

如果电话closures了远程推送通知的接收,或推送通知未能发送,推送的发起者是否可以通知其未能发送?

我知道有反馈服务可用于查询失败的投递尝试,但这听起来像是一个拉式反馈,而不是像每个推送通知发送的收据。

那么假设我们向100,000个设备发送了推送通知,那么我们可以连接到反馈服务并查看哪些设备失败? 这有多准确,在反馈信息可用之前是否有时间延迟?

您无法分辨推送是否已经完成。

反馈服务旨在通知您一段时间内推送失败的设备。 你应该在那里的数据,并停止发送推到该设备。 进入反馈服务可能需要一些时间,因为当苹果认为设备已经卸载了应用程序,或者设备不再使用,或者类似事件而不是设备是真正的意思时,超出范围,并且与APNS没有任何关系。

加上Matt所说的话,APNS提供了第二个更直接的机制来了解某些types的错误:错误响应数据包。 这些数据包会在推送通知时立即返回,并在发生支持错误时为您提供实时反馈,并为您提供立即采取措施的机会。 如果通知被APNS接受,并且没有返回错误响应数据包,则反馈服务将成为稍后知道该通知是否到达设备的唯一途径(即使如此,反馈服务成为列表的条件是不是那么简单)。

反馈服务和错误响应数据包报告不同types的错误,因此您不能单独依赖它们中的任何一个:您必须处理由这两种机制报告的错误。

一些类似JavaPNS的库自动处理错误响应数据包。