如果手机关闭了远程推送通知的接收,或推送通知无法发送,推送的发起人是否可以获知无法发送?
我知道有可用于查询失败的传递尝试的反馈服务,但这听起来像是拉式反馈,而不是像每次推送通知一样发送的收据。
假设我们向100,000个设备发送推送通知,那么我们是否可以连接到反馈服务并查看哪些设备失败?这有多准确,是否有反馈信息可用时间延迟?
答案 0 :(得分:3)
你无法判断推送是否已经发送。
反馈服务旨在通知您一段时间内无法提供推送的设备。您应该对其中的数据进行操作,并停止向该设备发送推送。可能需要一段时间才能进入反馈服务,因为当Apple认为设备已卸载您的应用程序,或者设备已不再使用,或类似事件而不仅仅是设备时,它只是真的意味着进入目前超出范围且与APNS无关。
答案 1 :(得分:0)
只是添加Matt所说的内容,APNS提供了第二种更直接的机制来了解 某些 类型的错误:错误响应数据包。这些数据包会在推送通知时立即返回,在发生支持的错误时为您提供实时反馈,并让您有机会立即采取措施。如果APNS接受通知并且没有返回错误响应数据包,则反馈服务成为稍后知道通知是否到达设备的唯一方式(即使这样,反馈服务列出的条件是不那么简单)。
反馈服务和错误响应数据包报告了不同类型的错误,因此您不能单独依赖它们:您必须处理两种机制报告的错误。
像JavaPNS这样的库会自动处理错误响应数据包。