我在Apple的开发者领域找不到任何有关APNS未注册设备问题的决定性答案。
假设设备已从APSN服务取消注册,我是否会在流中获得有关未注册的任何响应,或者我可以知道的唯一方法是使用反馈服务?
如果实际上反馈服务是唯一的解决方案,建议采用何种方式来处理此成功 - >失败状态?
更清楚的是,如果我在流中没有得到任何响应,则意味着“可能”(使用Apple)到达目的地但是反馈表明它是失败的。
答案 0 :(得分:4)
如果设备通过您的代码从APNS取消注册(即您的应用程序代码启动了取消注册),您的应用程序可以通知您的服务器删除设备令牌(与注册后通知服务器存储令牌的方式相同) )。
否则,服务器知道设备令牌不再相关的唯一方法(由于从设备卸载应用程序或用户禁用应用程序的推送通知)是通过在反馈服务中获取设备令牌
对于流中的响应,如果邮件无效,则只会收到错误响应。由于令牌无效,它可能无效,但无效令牌是在当前推送环境中永远无效的令牌(与反馈服务中返回的令牌不同,后者曾经有效,如果应用程序是有效的,则可能再次有效重新安装)。
更清楚的是,如果我在流中没有得到任何响应,则意味着它“可能”(使用Apple)到达目的地但后来反馈表明它是失败的。
如果Apple未在流中发送任何响应,则表示该消息有效,Apple将尝试将其传送到设备。如果,当Apple尝试传递消息时,他们发现应用程序已从设备中卸载,则下一次对反馈服务的调用将返回该设备的设备令牌。