ios - 每次应用程序注册时都会调用 didRegisterForRemoteNotificationsWithDeviceToken 吗?

标签 ios push-notification

标题说明了一切...我在每次应用程序启动时都会调用registerForRemoteNotificationTypes。第一次效果非常好。获得了设备 token ,但我所做的只是 NSLog。

现在再次运行应用程序... didRegister* 和 didFail* 回调都没有被执行。我的代码/网络没有任何变化。

这是正确的行为吗?我在 StackOverflow 上看到相互矛盾的答案。 This SO answer意味着 didRegister* 回调应该每次都发生。有人说你永远不应该缓存设备 token 。好吧,那很好……但是我第一次拿到 token 时没有对我的 token 做任何事情,所以现在它丢失了???通常情况下,应用程序当然应该将 token 推送到我的推送通知服务器,但我只是处于开发阶段,并没有这样做。那么现在这个 token 丢失了,我的应用程序将不会收到另一个 token ?这看起来很奇怪,因为苹果文档说在每个应用程序启动时调用 registerForRemoteNotificationTypes !如果您每次都没有取回新的(或回收的) token ,那么这样做有什么意义呢?还是还有其他事情发生?

最佳答案

didRegisterForRemoteNotificationsWithDeviceToken 每次都应该执行。

我的手机肯定处于奇怪的状态。我终于注意到,在通知中心中,列出了该应用程序,但应用程序名称下方没有角标(Badge)、警报或声音文本。我手动编辑了设置并启用了这些通知。然后,下次运行应用程序时,会触发 didRegister 回调。

无法通过禁用警报/角标(Badge)/声音来复制不良状态。每次还是收到回调。将这归结为侥幸。

关于ios - 每次应用程序注册时都会调用 didRegisterForRemoteNotificationsWithDeviceToken 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207008/

相关文章:

ios - 上下文闭包类型 Response<AnyObject> -> void 需要 1 个 agrument 但 3 个在闭包体中

android - 如何以 xamarin 形式获取 android 和 IOS 设备 token ?

java - Android 应用程序中的推送通知

android - 如何注册我的 Android 应用程序以解析网站

php - 使用 php 向 Google Cloud Messaging 发送通知给我未经授权的错误 401

ios - 应用程序拒绝 SIGABRT iOS

ios - 应用无法找到音频蓝牙 HFP 免提端口 Swift

ios - 如何使用 Swift 解决 Firebase 中的异步问题?

ios - 推送通知以提醒企业更新?

iphone - 模型、 View 、 Controller 混淆