Swift 通知許可状態を取得する(同期あり)
UNUserNotificationCenter.current().getNotificationSettingsで通知設定取得。
UNNotificationSettings内のsetting.authorizationStatus確認。
ドキュメントより
UNAuthorizationStatusの値
notDetermined
ユーザーは、アプリで通知をスケジュールすることを許可するかどうかをまだ選択していません。denied
このアプリはスケジュールや通知の受信を許可されていません。authorized
このアプリは、スケジュールや通知の受信を許可されています。provisional
このアプリケーションは、中断しない利用通知の掲載を暫定的に許可されています。
let semaphore = DispatchSemaphore(value: 0) UNUserNotificationCenter.current().getNotificationSettings(completionHandler: {setting in if setting.authorizationStatus == .authorized { print("許可") } else { print("未許可") } semaphore.signal() }) semaphore.wait()