Apple 推送通知、注销应用和删除应用问题/解决方案

Posted

技术标签:

【中文标题】Apple 推送通知、注销应用和删除应用问题/解决方案【英文标题】:Apple Push notification, logging out app and deleting app problems/solutions 【发布时间】:2012-10-12 01:41:28 【问题描述】:

推送通知对我来说非常有用,但在一种情况下除外。我们正在开发的应用程序需要您登录/注销,因此当您登录时,服务器会向您发送通知,而当您未登录时,它不应该。

如果用户在登录时删除应用程序,服务器不知道用户已删除应用程序。如果应用程序一直被删除并且服务器尝试发送通知,这不是问题 - 服务器端的 APNS 反馈机制会捕捉到这一点并关闭会话。

如果用户重新安装应用程序会怎样?从服务器的角度来看,他们仍处于登录状态。在应用程序启动时,您可以向服务器发送一条注销消息。如果您不启动应用程序怎么办?该应用仍会看到收到的通知!

这是一个我不应该担心的愚蠢的边缘情况吗?或者有没有公认的方法来解决这个问题。

【问题讨论】:

【参考方案1】:

我想说解决此问题的最佳方法是设置一定的时间(可能是一周或 2 周),如果用户不使用该应用程序或服务器没有从用户那里收到任何数据,它将它们注销。

这样它会自动将他们注销,如果他们两周没有使用该应用程序,他们将不得不在再次使用该应用程序时登录

【讨论】:

【参考方案2】:

您可以做一件事,当设备向服务器发送通知注册请求时,服务器可以检查设备的UDID,如果发现任何通知,服务器可以将其清除。

【讨论】:

您无法再在设备中查看 udid 以将其发送到服务器 这或多或少是我们目前正在做的事情。还有一种方法可以从设备上获取 udid。 @nflacco 如何在 ios9 中获取 UDID

以上是关于Apple 推送通知、注销应用和删除应用问题/解决方案的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序处于后台时接收 Apple 推送通知

当我删除应用程序时推送通知

当应用程序从后台删除时,Apple Push 通知不会在 ios 7 上传递

停止向 Apple 发送推送通知以进行交付

当应用程序未运行/注销时禁用苹果推送通知

如何从我的 iOS 应用程序中删除推送通知?