我们知道当用户在应用程序中提示系统对话框询问推送通知权限时,如果他点击了"是"然后application:didRegisterForRemoteNotificationsWithDeviceToken:
将被调用,如果他点击" NO"然后将调用application:didFailToRegisterForRemoteNotificationsWithError:
。
如果用户点击"否",然后稍后转到设置并手动启用推送通知怎么办?返回应用程序后,是否会触发某个委托方法?我想在用户打开“设置”中的推送通知后立即执行一段代码,检测到这一点的最佳方法是什么,而不是每次都在applicationDidBecomeActive上再次注册?
答案 0 :(得分:3)
如果用户拒绝您的通知请求,那么didFailToRegisterForRemoteNotificationsWithError:
不被调用,因为注册没有失败 - 它甚至没有尝试过。
如果用户更改了设置应用中的权限,那么您下次启动应用时或者如果应用返回到前台(如果它位于后台),您将会收到didRegisterForRemoteNotificationsWithDeviceToken:
的来电。
远程通知的成功注册并不意味着您实际上可以通知用户 - 因为您需要检查传递给didRegisterUserNotificationSettings:
的值,但是如果您感兴趣的是能够接收后台推送通知,然后didRegisterForRemoteNotificationsWithDeviceToken:
可能就足够了
答案 1 :(得分:0)
一旦用户点击允许或不允许弹出推送通知,代理人就会在两个选项上确认。
func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {
}