在我的应用程序的注册过程中,我要求允许推送通知,他们按下“允许推送通知”按钮然后我提供默认提示以允许推送通知 .
这个问题是我使用parse.com作为后端,它要求我在用户注册推送通知时保存设备令牌 . 由于我没有在应用程序启动时询问它们,因此我无法获取设备令牌并将其存储到我的Parse数据库中 .
如果用户同意允许通知,那么
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
方法在他们下次启动应用程序时调用?如果没有,有没有办法在任何其他地方获取设备令牌,以便我可以将其保存到Parse?
2 回答
一旦用户通过iOS通知允许他们调用
didRegisterForRemoteNotificationsWithDeviceToken:
- 无论这是您的应用程序的执行 - 在您登录并同意后的情况下 . 在此方法中,您应该使用[PFUser currentUser]
并将其放入PFInstallation
对象中 .在您的应用程序的后续启动中,如果用户已请求通知,您应再次调用
registerForRemoteNotifications
,这将导致另一次调用didRegisterForRemoteNotificationsWithDeviceToken:
,因为通知令牌可能已更改 .如果您允许用户注销/然后您应该根据需要更新
PFInstallation
对象 .我假设你已经在
AppDelegate
实现了这个方法:和
两个回调都与APNS设备令牌请求相关 .
注册通知类型后,应调用
[application registerForRemoteNotifications]
以在上面的相应回调中接收设备令牌(或不接收) .您可以在任何地方调用
[[UIApplication sharedApplication] registerForRemoteNotifications]
来获取设备令牌 .