我在我的应用程序中实现了推送通知。
它工作正常。
现在的问题是,即使我从设备中删除了我的应用程序,它也会收到推送通知。
那么,当从设备中删除应用程序时,有什么方法可以从推送通知中取消注册应用程序。
希望得到您的帮助。
提前致谢。
我在我的应用程序中实现了推送通知。
它工作正常。
现在的问题是,即使我从设备中删除了我的应用程序,它也会收到推送通知。
那么,当从设备中删除应用程序时,有什么方法可以从推送通知中取消注册应用程序。
希望得到您的帮助。
提前致谢。
在 Apple 推送通知中,有一个叫做反馈服务的东西。因此,当用户删除应用程序时,服务提供商最好停止向该设备发送通知。但苹果并没有通知服务“这个设备没有使用你的应用,不要发送通知”。因此,您需要轮询此信息。
每天您可能需要访问 Apple 通知服务器,要求它为您提供删除了您的应用程序的设备 ID。一旦你得到它们,你就会在你的数据库中将它们标记为已删除,从而不再发送任何通知。希望这是你想要的。
来自Apple 文档-
... Apple Push Notification Service 包括一项反馈服务,APN 会不断更新每个应用程序的失败交付尝试设备列表。设备由以二进制格式编码的设备令牌标识。提供商应定期查询反馈服务以获取其应用程序的设备令牌列表,每个设备令牌都由其主题标识。然后,在验证应用程序最近没有在识别的设备上重新注册后,提供商应该停止向这些设备发送通知。
通过类似于用于发送推送通知的二进制接口访问反馈服务。您通过feedback.push.apple.com,端口2196访问生产反馈服务;您可以通过 feedback.sandbox.push.apple.com 的 2196 端口访问沙盒反馈服务。与推送通知的二进制接口一样,您必须使用 TLS(或 SSL)来建立安全的通信通道。这些连接所需的 SSL 证书与为发送通知而配置的证书相同。要建立受信任的提供者身份,您应该在连接时使用点对点身份验证将此证书提供给 APN。
请务必结帐 -反馈服务问题
到目前为止还没有看到这个答案,Apple“Troubleshooting Push Notifications”文档中有一个小注释。
简而言之,如果您删除了最后一个启用推送的应用程序,那么在服务器被告知该应用程序已被删除之前,从设备到 Apple 推送服务器的持久连接就会中断。
解决方案:在您的设备上至少保留一个支持推送的应用程序。
文档中有解释:
使用反馈服务的问题 如果您从设备或计算机中删除您的应用程序,然后向其发送推送通知,您可能会拒绝设备令牌,并且无效的设备令牌应该出现在反馈服务上。但是,如果这是设备或计算机上最后一个启用推送的应用程序,它将不会显示在反馈服务中。这是因为删除最后一个应用程序会在发送删除通知之前断开与推送服务的持久连接。
您可以通过在设备或计算机上保留至少一个支持推送的应用程序来解决此问题,以保持持久连接。要保持与生产环境的持久连接,只需从 App Store 安装任何支持推送的免费应用程序,然后您应该能够删除您的应用程序并看到它出现在反馈服务中。
回想一下,每个推送环境都有自己的持久连接。因此,要保持与沙盒环境的持久连接,请安装另一个支持开发推送的应用程序。”