最初の一歩:
ヘッダーファイルを次のように追加する必要があります
import UserNotifications
checkpushNotificationメソッドを使用して、ユーザーが通知を有効にするかどうかを確認しました。AppDelegate クラスの didFinishLaunchingWithOptions からこのメソッドを呼び出して使用します。問題がある場合は、以下にコメントしてください。
最後のステップ:
func checkPushNotification(){
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().getNotificationSettings(){ (setttings) in
switch setttings.authorizationStatus{
case .authorized:
print("enabled notification setting")
case .denied:
print("setting has been disabled")
case .notDetermined:
print("something vital went wrong here")
}
}
} else {
let isNotificationEnabled = UIApplication.shared.currentUserNotificationSettings?.types.contains(UIUserNotificationType.alert)
if isNotificationEnabled{
print("enabled notification setting")
}else{
print("setting has been disabled")
}
}
}
また、特定のブール出力を有効または無効にしたい場合は、完了ハンドラーを実装して解決する必要があります。
func checkPushNotification(checkNotificationStatus isEnable : ((Bool)->())? = nil){
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().getNotificationSettings(){ (setttings) in
switch setttings.authorizationStatus{
case .authorized:
print("enabled notification setting")
isEnable?(true)
case .denied:
print("setting has been disabled")
isEnable?(false)
case .notDetermined:
print("something vital went wrong here")
isEnable?(false)
}
}
} else {
let isNotificationEnabled = UIApplication.shared.currentUserNotificationSettings?.types.contains(UIUserNotificationType.alert)
if isNotificationEnabled == true{
print("enabled notification setting")
isEnable?(true)
}else{
print("setting has been disabled")
isEnable?(false)
}
}
}
そして、これを次のように単純に呼び出します
self.checkPushNotification { (isEnable) in
print(isEnable)
// you know notification status.
}