2

didInvalidatePushTokenForType 的文档说它是可选的实现并且还说这个

如果先前提供的推送令牌不再有效,则调用此方法。请求注册无需任何操作。此反馈可用于更新应用程序的服务器,使其不再向此设备发送指定类型的推送通知。

因此,究竟为什么有人不想实现这一点?如果令牌不再有效,则服务器将永远无法再次向该设备发送 Voip 推送,因此手机上的应用程序是否不想尽快知道其是否无效,以便可以向该设备发送新令牌服务器?

我一直在尝试搜索信息和使用 didInvalidatePushTokenForType() 但似乎每个人都只是将此方法复制并粘贴到他们的源代码中,因为其他人都复制并粘贴了它。但似乎没有人用它做任何事情。但似乎喜欢它应该是一个非常重要的方法来使用,那么为什么显然没有人呢?令牌什么时候会失效?

4

1 回答 1

1

感谢您提出了很好的问题。

1) 令牌什么时候会失效?

  • 如果我们从 App Store 更新应用程序,则 APNS 令牌不会更改。

  • 重新安装操作系统或更新操作系统或重置 iOS 设备,然后 APNS 令牌会更改(升级或降级操作系统)。

  • 设备令牌 2 年后失效或过期。

  • 如果我重新安装应用程序,iOS9 和更高版本的设备令牌会更改。(根据我的经验和知识)。

  • 从 App Store 下载应用程序,然后使用 X-Code 运行您的代码,在这种情况下,设备令牌会更改。

2)重要的didInvalidatePushTokenForType()或为什么?didInvalidatePushTokenForType()是可选的

让我们澄清一下didInvalidatePushTokenForType()方法。

一旦令牌被更改然后调用didInvalidatePushTokenForType()didUpdatePushCredentials()方法,所以所有代码都放在didUpdatePushCredentials()而不是didInvalidatePushTokenForType().

这就是为什么开发人员不重视didUpdatePushCredentials()方法的原因。

从这里查找参考

于 2017-10-30T12:33:15.050 回答