iOS - 用户在“设置”中手动启用“推送通知”时的委托方法

时间:2015-04-06 22:19:27

标签: ios objective-c apple-push-notifications

我们知道当用户在应用程序中提示系统对话框询问推送通知权限时,如果他点击了"是"然后application:didRegisterForRemoteNotificationsWithDeviceToken:将被调用,如果他点击" NO"然后将调用application:didFailToRegisterForRemoteNotificationsWithError:

如果用户点击"否",然后稍后转到设置并手动启用推送通知怎么办?返回应用程序后,是否会触发某个委托方法?我想在用户打开“设置”中的推送通知后立即执行一段代码,检测到这一点的最佳方法是什么,而不是每次都在applicationDidBecomeActive上再次注册?

2 个答案:

答案 0 :(得分:3)

如果用户拒绝您的通知请求,那么didFailToRegisterForRemoteNotificationsWithError: 被调用,因为注册没有失败 - 它甚至没有尝试过。

如果用户更改了设置应用中的权限,那么您下次启动应用时或者如果应用返回到前台(如果它位于后台),您将会收到didRegisterForRemoteNotificationsWithDeviceToken:的来电。

远程通知的成功注册并不意味着您实际上可以通知用户 - 因为您需要检查传递给didRegisterUserNotificationSettings:的值,但是如果您感兴趣的是能够接收后台推送通知,然后didRegisterForRemoteNotificationsWithDeviceToken:可能就足够了

答案 1 :(得分:0)

一旦用户点击允许或不允许弹出推送通知,代理人就会在两个选项上确认。

func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {
}