[iOS 10] User Notifications framework を使用してアプリの通知の設定を取得する
はじめに
こんにちは。モバイルアプリサービス部の平屋です。前回の記事に引き続き、iOS 10 で追加された「User Notifications framework」のクラスを使用した実装を紹介します。
iOS 標準の「設定アプリ」->「通知」->「(アプリ名)」を開くと、そのアプリの通知設定画面を表示することができます。本記事では、ここに表示されている通知設定の値を取得する方法を解説していきます。
通知設定を取得する
通知設定を取得するには、UNUserNotificationCenter
クラスの getNotificationSettings(completionHandler:)
メソッドを使用します。
取得完了時に呼ばれる completionHandler
の引数が UNNotificationSettings
オブジェクトとなっているので、このオブジェクトから設定情報を取得できます。
以下の例では、通知の認証状態をログに出力しています。
UNUserNotificationCenter.current().getNotificationSettings { (settings) in switch settings.authorizationStatus { case .authorized: print("authorized") case .denied: print("denied") default: print("notDetermined") } }
上記の実装例では「通知の認証状態」だけ取り出しましたが、UNNotificationSettings
オブジェクトには他の設定値も格納されています。
- UNNotificationSettings
- authorizationStatus
- notificationCenterSetting
- lockScreenSetting
- carPlaySetting
- alertSetting
- alertStyle
- badgeSetting
- soundSetting
通知設定画面と UNNotificationSettings の各プロパティとの対応関係
通知設定画面と UNNotificationSettings
の各プロパティとの対応関係は以下の通りです。
セクション 0
設定.app上の項目 | 対応する UNNotificationSettings のプロパティ |
---|---|
通知を許可 | authorizationStatus |
セクション 1
設定.app上の項目 | 対応する UNNotificationSettings のプロパティ |
---|---|
通知センターに表示 | notificationCenterSetting |
サウンド | soundSetting |
Appアイコンにバッジを表示 | badgeSetting |
ロック画面に表示 | lockScreenSetting |
セクション 2
設定.app上の項目 | 対応する UNNotificationSettings のプロパティ |
---|---|
ロックされていないときの通知のスタイル | alertStyle, alertSetting |
スタイル、alertStyle、alertSetting の対応関係
選択中のスタイル | alertStyle の値 | alertSetting の値 |
---|---|---|
なし | none | disabled |
バナー | banner | enabled |
通知 | alert | enabled |
さいごに
本記事では、通知設定の値を取得する方法を紹介しました。
通知の設定値取得を実装する際の参考になれば幸いです!
参考資料
- Introduction to Notifications - WWDC 2016 - Videos - Apple Developer
- UserNotifications - Apple Developer Documentation
- UNUserNotificationCenter - UserNotifications | Apple Developer Documentation
- UNNotificationSettings - UserNotifications | Apple Developer Documentation
- UNAlertStyle - Apple Developer Documentation
- UNNotificationSetting - Apple Developer Documentation