首页 文章

要求用户在注册过程后允许推送通知

提问于
浏览
0

在我的应用程序的注册过程中,我要求允许推送通知,他们按下“允许推送通知”按钮然后我提供默认提示以允许推送通知 .

这个问题是我使用parse.com作为后端,它要求我在用户注册推送通知时保存设备令牌 . 由于我没有在应用程序启动时询问它们,因此我无法获取设备令牌并将其存储到我的Parse数据库中 .

如果用户同意允许通知,那么

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

方法在他们下次启动应用程序时调用?如果没有,有没有办法在任何其他地方获取设备令牌,以便我可以将其保存到Parse?

2 回答

  • 1

    一旦用户通过iOS通知允许他们调用 didRegisterForRemoteNotificationsWithDeviceToken: - 无论这是您的应用程序的执行 - 在您登录并同意后的情况下 . 在此方法中,您应该使用 [PFUser currentUser] 并将其放入 PFInstallation 对象中 .

    在您的应用程序的后续启动中,如果用户已请求通知,您应再次调用 registerForRemoteNotifications ,这将导致另一次调用 didRegisterForRemoteNotificationsWithDeviceToken: ,因为通知令牌可能已更改 .

    如果您允许用户注销/然后您应该根据需要更新 PFInstallation 对象 .

  • 0

    我假设你已经在 AppDelegate 实现了这个方法:

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    

    - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
    

    两个回调都与APNS设备令牌请求相关 .

    注册通知类型后,应调用 [application registerForRemoteNotifications] 以在上面的相应回调中接收设备令牌(或不接收) .

    您可以在任何地方调用 [[UIApplication sharedApplication] registerForRemoteNotifications] 来获取设备令牌 .

相关问题