即使在应用程序被删除后仍接收推送通知 iPhone

Posted

技术标签:

【中文标题】即使在应用程序被删除后仍接收推送通知 iPhone【英文标题】:Receiving push notification even after the app is deleted iPhone 【发布时间】:2012-07-18 06:35:25 【问题描述】:

我在我的应用中实现了推送通知。

一切正常。

现在的问题是,即使我从设备上删除了我的应用程序,它也会收到推送通知。

那么有什么方法可以在应用从设备中删除时从推送通知中取消注册。

希望得到您的帮助。

提前致谢。

【问题讨论】:

广告?如果是这样,那就为您服务。 用户可以在设备设置中自行修复。不是解决方案,而是一种选择。 【参考方案1】:

在 Apple 推送通知中,有一个叫做 - 反馈服务的东西。因此,当用户删除应用程序时,服务提供商最好停止向该设备发送通知。但苹果并没有通知服务“这个设备没有使用你的应用,不要发送通知”。因此,您需要轮询此信息。

您可能每天都需要访问 Apple 通知服务器,要求它为您提供删除了您的应用的设备 ID。一旦你得到它们,你就会在你的数据库中将它们标记为已删除,从而不再发送任何通知。希望这是你想要的。

来自Apple Documentation -

... Apple 推送通知服务包含一个反馈 APNs 使用每个应用程序列表不断更新的服务 尝试交付失败的设备。这些设备是 由以二进制格式编码的设备令牌标识。提供者应 定期查询反馈服务以获取设备列表 其应用程序的令牌,每个令牌都由其标识 话题。然后,在验证该应用程序最近没有被 在识别的设备上重新注册,提供者应该停止 向这些设备发送通知。

通过二进制接口访问反馈服务 类似于用于发送推送通知。您访问 通过 feedback.push.apple.com 的生产反馈服务,端口 2196; 您通过以下方式访问沙盒反馈服务 feedback.sandbox.push.apple.com,端口 2196。与二进制文件一样 推送通知接口,您必须使用 TLS(或 SSL) 建立安全的通信渠道。 SSL 证书 这些连接所需的连接与为 发送通知。要建立受信任的提供者身份,您 应在连接时使用此证书向 APNs 出示 点对点身份验证。

一定要结帐-Issues with Feedback Service

【讨论】:

那么如何知道谁删除了应用程序,或者当应用程序从设备中删除时是否有任何委托方法可以调用。请帮助.. 检查更新的答案,您的推送框架的这一部分也不涉及应用程序的太多更改。它的所有后端都发生了变化。【参考方案2】:

到目前为止还没有看到这个答案,Apple“Troubleshooting Push Notifications”文档中有一个小注释。 简而言之,如果您删除了最后一个启用推送的应用程序,那么在服务器被告知该应用程序已被删除之前,从设备到 Apple 推送服务器的持久连接就会中断。 解决方案:在您的设备上至少保留一个支持推送的应用程序。

文档中有解释:

使用反馈服务的问题 如果您从您的设备或计算机中删除您的应用程序,然后向其发送推送通知,您会期望设备令牌被拒绝,并且无效的设备令牌应该出现在反馈服务中。但是,如果这是设备或计算机上最后一个启用推送的应用程序,它将不会显示在反馈服务中。这是因为删除最后一个应用程序会在发送删除通知之前断开与推送服务的持久连接。

您可以通过在设备或计算机上保留至少一个支持推送的应用程序来解决此问题,以保持持久连接。要保持与生产环境的持久连接,只需从 App Store 安装任何支持推送的免费应用程序,然后您应该能够删除您的应用程序并看到它出现在反馈服务中。

回想一下,每个推送环境都有自己的持久连接。因此,要保持与沙盒环境的持久连接,请安装另一个支持开发推送的应用程序。”

【讨论】:

以上是关于即使在应用程序被删除后仍接收推送通知 iPhone的主要内容,如果未能解决你的问题,请参考以下文章

iphone - 即使禁用推送通知也会出现

删除并重新安装 iphone 应用后接收本地通知

如何在 iPhone 应用程序中接收推送通知消息?

即使应用程序关闭,whatsapp 如何设法接收推送通知?

我的 iPhone 应用程序可以注册以接收用于其他应用程序的推送通知吗?

如何在快速接收推送通知时进行服务器调用?