识别本地通知设置的"未确定"案例

Ber*_*rnd 6 privacy ios uilocalnotification swift

从iOS8开始,您需要注册并提示用户使用本地通知.因此,我想实现一种双重检查这些权限的方法.

如何检查未确定/未设置本地通知设置的情况?到目前为止,我只知道如何检查被授予拒绝的本地通知,如此...

    var currentStatus = UIApplication.sharedApplication().currentUserNotificationSettings()
    var requiredStatus:UIUserNotificationType = UIUserNotificationType.Alert

    if currentStatus.types == requiredStatus {
     … //GRANTED
     } else {
     … //DENIED
     }
Run Code Online (Sandbox Code Playgroud)

使用这个的问题是,如果到目前为止没有任何设置,我也会得到一个拒绝.如何区分所有3个案例?

  • 授予(通知,警报类型)
  • 拒绝(通知,警报类型)
  • 未定义/尚未设置(因此尚未创建本地通知应用程序设置)

作为替代解决方案,为CoreLocation的授权didChangeAuthorizationStatus提供类似的委托方法,以便对用户在权限警报上的选择作出反应将是有帮助的.是否有这样的东西,以获得用户与本地通知的隐私警报交互的状态?

Ber*_*rnd 1

我刚刚找到了一个合适的 UIApplication 委托方法来帮助解决这个问题:

\n\n
- (void)application:(UIApplication *)application\n    didRegisterUserNotificationSettings:\n    (UIUserNotificationSettings *)notificationSettings {\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以在 WWDC14 Session 713“iOS 通知中的新功能What\xe2\x80\x99s”中找到更多详细信息。

\n