如何可靠地评估iOS上的卸载?

时间:2016-03-03 19:49:10

标签: ios iphone apple-push-notifications uninstall

我正在尝试检测iOS应用的卸载。 我读了this document,它提供了一些有用的信息。但是,如何从返回的错误代码中了解用户是否已卸载与禁用推送通知/没有连接?

1 个答案:

答案 0 :(得分:0)

我想你会想要使用Feedback Service。当用户删除应用程序时,服务提供商应该理想地停止向该设备发送通知。但Apple没有通知服务“此设备未使用您的应用程序,请勿发送通知”。从技术上讲,卸载应用程序的设备在下次推送通知进入设备之前不会进入此列表。因此,您需要使用Feedback Service轮询此信息。

您需要定期点击Apple Notification服务器,要求它为您提供已删除应用的ID。获得它们后,在数据库中将它们标记为已删除,从而不再发送任何通知。此Feedback Service将告知已取消注册的设备(已卸载应用)。我不确定的部分是在设置中关闭推送通知的用户是否会注册相同的内容。我相信它们不会出现在Feedback Service的Feed中。但我确定,离线用户和推送通知未送达的用户将不会包含在列表中。 在您的开发区域进行简单测试即可尝试该应用,停用该应用的推送通知,然后查看该设备是否显示在Feed中。

查看Apple's documentation

来自Apple文档 -

  

Apple推送通知服务包括APN的反馈服务   使用每个应用程序的设备列表不断更新   有失败的交付尝试。设备由标识   设备令牌以二进制格式编码。提供商应定期   查询反馈服务以获取其设备令牌列表   应用程序,每个应用程序都由其主题标识。然后   验证应用程序最近未重新注册   识别出的设备,提供商应该停止发送通知   对这些设备。

     

通过二进制接口访问反馈服务   类似于用于发送推送通知的内容。你访问了   生产反馈服务通过feedback.push.apple.com,端口2196;   您通过访问沙箱反馈服务   feedback.sandbox.push.apple.com,端口2196.与二进制文件一样   推送通知的界面,您必须使用TLS(或SSL)   建立安全的通信渠道。 SSL证书   这些连接所需的是与之相同的连接   发送通知。要建立可信赖的提供者身份,您   应该在连接时使用此证书向APN提交此证书   对等身份验证。

请务必阅读 - Issues with Feedback Service