我该如何在iOS 11中检查UNUserNotificationCenter的当前授权状态?我已经找了一段时间,找到了一些代码,但它不是用Swift 3编写的,并且某些函数在iOS 10中已被弃用。有人可以帮忙吗?
我该如何在iOS 11中检查UNUserNotificationCenter的当前授权状态?我已经找了一段时间,找到了一些代码,但它不是用Swift 3编写的,并且某些函数在iOS 10中已被弃用。有人可以帮忙吗?
好的,我找到了:
let center = UNUserNotificationCenter.current()
center.getNotificationSettings { (settings) in
if(settings.authorizationStatus == .authorized)
{
print("Push authorized")
}
else
{
print("Push not authorized")
}
}
代码作者:Kuba
在获取通知授权状态时,实际上有三种可能的状态:
检查这些状态的简单方法是使用一个 switch-case 语句,其中 .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")
}
}
可以在苹果官方文档https://developer.apple.com/documentation/usernotifications/unauthorizationstatus中找到对UNAuthorizationStatus
的描述。
settings.authorizationStatus
重置为.notDetermined
,以便再次向用户显示系统权限对话框? 如果用户注销并有不同的用户登录,则需要此功能。 在这种情况下,我将通过requestAuthorization()
再次请求 UNUserNotificationCenter 权限,但它不会再次显示警报,因为它已由先前的用户设置(例如.authorized'
或.denied
)。 - Jose Enrique