如何在用户在 iOS 中注册通知后立即 运行 编码?

How to run code immediately after user registers for notifications in iOS?

我有一个应用程序可以在按下按钮时设置本地通知。第一次按下该按钮时,我注册了本地通知。我的问题是:在用户通过不允许或允许通知进行响应后,我是否能够以某种方式检测系统的通知注册警报何时解除(以及 运行 设置或不设置本地通知的代码)。

请注意,检查 currentUserNotificationSettings() 中的 UIUserNotificationTypes 不是我要找的。我希望能够在用户选择允许或禁止通知后立即 运行 编码。我该怎么做?

任何时候出现 "system" 对话框时,都会在您的 App Delegate 中调用 applicationWillResignActive(相应的 UIApplicationWillResignActiveNotification 将通过 NSNotificationCenter 发布)。

关闭对话框时将调用 applicationDidBecomeActive(并发布 UIApplicationDidBecomeActive)。

如果您在请求通知权限之前设置了一个布尔值 属性,您可以在 applicationDidBecomeActive 中进行检查,如果为真,请合理猜测通知对话框刚刚被关闭。

如果您使用的是 iOS 8+ 方法 registerUserNotificationSettings 那么您可以简单地在您的应用委托 didRegisterUserNotificationSettings: 方法中检查结果。

是的,正如 Paulw11 所说,您应该为 ios >= 8.0

实施
optional func application(_ application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings)

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didRegisterUserNotificationSettings:

查看完整文档https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1