【问题标题】:Unregister remote notification on logout注销时注销远程通知
【发布时间】:2017-01-17 13:04:29
【问题描述】:

关于unregisterForRemoteNotifications

来自apple doc

您应该仅在极少数情况下调用此方法,例如当应用程序的新版本不再支持所有类型的远程通知时。用户可以通过“设置”应用的“通知”部分暂时阻止应用接收远程通知。通过此方法取消注册的应用始终可以重新注册。

有人说:

调用它有时会使应用程序处于调用状态 registerForRemoteNotifications 将不再起作用。

为什么apple 告诉我们只在极少数情况下使用它,并举了一个极端的例子,说明新版本的应用程序是否完全删除了推送通知支持。不适合注销按钮操作吗?

在我们的应用中,用户可以使用多个设备登录。如果unregisterForRemoteNotifications 运行良好,那就容易多了。有人在注销按钮上使用unregisterForRemoteNotifications 吗?

【问题讨论】:

  • 这是否意味着他们每次登录时都会被提示接受推送通知权限?那会很烦人......我之前通过在我的服务器上设置了一个登录标志来完成此操作,服务器确定它是否应该向设备发送推送或者用户是否已登录......

标签: ios objective-c swift push-notification


【解决方案1】:

是的,您可以在注销时使用unregisterForRemoteNotifications

此功能用于注销Apple Store的所有通知。

您始终可以使用registerForRemoteNotifications 重新注册通知并开始接收推送通知。并且您可能需要在成功登录时执行此操作。

如果你仔细阅读 Apple Doc 中的那句话,它的最后一行清楚地表明Apps unregistered through this method can always re-register.

如果他们不想在一段时间内收到推送通知,他们会建议开发人员,他们可以简单地从设置中禁用。但是对于登录和注销会话,您可以调用unregisterForRemoteNotifications

并且新版本将停止接收通知意味着在您注销后您将永远不会收到任何通知,直到您重新注册。

【讨论】:

  • 我在调用 unregisterForRemoteNotifications 后在 iOS 10 上的体验,即使我再次调用 registerForRemoteNotifications,在删除并重新安装应用程序之前,我也不会收到来自 Apple 的令牌。
  • 我刚刚在 iOS 9 (iPad 2) 上进行了测试,发现在取消注册后,应用程序需要完全关闭并重新打开,然后才能收到任何推送通知。否则它工作正常。
  • rdar://28875922 解决了这个问题
  • 有谁知道这在 iOS 13 上是否仍然是一个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多