1. ホーム
  2. ios

[解決済み] Swift iosはios9とios10でリモートプッシュ通知が有効かどうかをチェックします。

2023-06-19 11:36:23

質問

ios 9 または ios 10 で、ユーザーがリモート通知を有効にしているかどうかを確認するにはどうすればよいですか。

ユーザーが許可していない、または「いいえ」をクリックした場合、通知を有効にするかどうかを尋ねるメッセージを切り替えたいのですが、どうすればよいでしょうか。

どのように解決するのですか?

iOS 10 になってから更新された回答は UNUserNotificationCenter .

まず最初に import UserNotifications とすると

let current = UNUserNotificationCenter.current()
        current.getNotificationSettings(completionHandler: { permission in
            switch permission.authorizationStatus  {
            case .authorized:
                print("User granted permission for notification")
            case .denied:
                print("User denied notification permission")
            case .notDetermined:
                print("Notification permission haven't been asked yet")
            case .provisional:
                // @available(iOS 12.0, *)
                print("The application is authorized to post non-interruptive user notifications.")
            case .ephemeral:
                // @available(iOS 14.0, *)
                print("The application is temporarily authorized to post notifications. Only available to app clips.")
            @unknown default:
                print("Unknow Status")
            }
        })


このコードはiOS 9まで動作します。iOS 10では、上記のコードスニペットを使用してください。

let isRegisteredForRemoteNotifications = UIApplication.shared.isRegisteredForRemoteNotifications
if isRegisteredForRemoteNotifications {
     // User is registered for notification
} else {
     // Show alert user is not registered for notification
}