当调用didRegisterForRemoteNotificationsWithDeviceToken时,iOS会触发NSNotification(包含deviceToken)吗?
我知道我总是可以在AppDelegate中保存NSUserDefaults中的令牌并在任何地方访问它,但我想知道是否有更好的方法。我在想UIApplicationDidEnterBackgroundNotification。
更新: 用例如果我想获取设备令牌而不在AppDelegate中实现该委托方法。
答案 0 :(得分:3)
没有。您需要实现didRegisterForRemoteNotificationsWithDeviceToken。我想在这种情况下,针对NSNotification的一个论点是你需要使用didFailToRegisterForRemoteNotificationsWithError智能地处理故障情况。
答案 1 :(得分:1)
无法正确理解您的问题。
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
当应用程序成功向APNS服务器注册,从而获取设备令牌时,这是iOS堆栈(即您的应用程序委托)调用的方法。
(这假设您已通过实施注册了推送通知的应用程序)
(void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types.
通常,需要随后将此设备令牌发送到其推送通知有效负载生成服务器以向服务器注册其设备。这可以在“didRegisterForRemoteNotificationsWithDeviceToken”中完成。因此,我并不认为需要将令牌存储在任何地方。此外,请注意,每次应用程序启动时,应用程序都会从APNS服务器注册并获取设备令牌(而不是通常从后台到前台进行 - 但这取决于您的实施)。