如何在swift 3中获取通知授权状态?

and*_*dre 12 notifications authorization status swift

如何在iOS 11中查看UNUserNotificationCenter的当前授权状态?我一直在寻找一段时间并找到一些代码,但它不是在swift 3中,而且一些功能在iOS 10中被弃用了.任何人都可以帮忙吗?

and*_*dre 24

好的,我找到了:

let center = UNUserNotificationCenter.current()
center.getNotificationSettings { (settings) in
    if(settings.authorizationStatus == .authorized)
    {
        print("Push authorized")
    }
    else
    {
        print("Push not authorized")
    }
}
Run Code Online (Sandbox Code Playgroud)

代码:库巴


小智 12

在获取通知授权状态时,它实际上可以处于三种状态,即

  • 授权
  • 拒绝
  • 未定

检查这些直接的方法是以一个开关的情况下.authorized.denied.nonDetermined在枚举UNAuthorizationStatus

UNUserNotificationCenter.current().getNotificationSettings { (settings) in
    print("Checking notification status")

    switch settings.authorizationStatus {
    case .authorized:
        print("authorized")

    case .denied:
        print("denied")

    case .notDetermined:
        print("notDetermined")

    }
}
Run Code Online (Sandbox Code Playgroud)

UNAuthorizationStatus可以在 Apple 的文档https://developer.apple.com/documentation/usernotifications/unauthorizationstatus 中找到有关说明