APNS在用户允许iOS通知之前调用了RegisterForRemoteNotifications

Tom*_*ing 7 apple-push-notifications ios

我正在开发一些iOS应用程序,这些应用程序都在同一个发布者下,所有这些应用程序都启用了推送通 当我打电话时registerForRemoteNotificationTypes,我得到用户提示允许或禁止推送通知,但在用户选择选项之前application:didRegisterForRemoteNotificationsWithDeviceToken:会使用令牌数据进行调用.当他们按下OK时再次调用它.这是正常的吗?

另外值得注意的是:在同一设备上运行时,多个应用似乎会获得相同的令牌.

msk*_*msk 6

这是Apple的文档.

发送此消息时,设备将使用Apple Push Service启动注册过程.如果成功,则应用程序委托在应用程序中接收设备令牌:didRegisterForRemoteNotificationsWithDeviceToken:method; 如果注册不成功,则通过应用程序通知委托:didFailToRegisterForRemoteNotificationsWithError:方法.如果应用程序委托收到设备令牌,它应该与其提供者连接并将令牌传递给它.

第一次启用推送的应用程序注册推送通知时,iOS会询问用户是否希望接收该应用程序的通知.一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报.

我认为你所观察到的是正常的.没有提及application:didRegisterForRemoteNotificationsWithDeviceToken 只有在用户授予权限时才会调用.我认为您可以通过在NSUserDefaults中缓存设备令牌来优化它,并在此方法中检查新令牌是否不等于缓存令牌.