💨
[iOS]暫定的な通知を行う
通知の許可
通知が許可されるかどうかは、デベロッパーにとって重要な課題かと思います。事前にユーザーに説明したとしても、情報不足により通知を拒否される場合があります。
少し前のiOS12
から暫定的な許可
という方法がありますが、自分はしばらく忘れていました。今回触る機会があったので方法をまとめました。
暫定的な許可について
暫定的な許可にについては以下の特徴があります
- 試験的に通知を出せる
- 通知センターのみに表示される(音やバナー、ロック画面には表示されない)
- 通知を保持するかオフにするかをユーザーに求めるボタンが含まれる
以下のようなダイアログが表示されます。
- 続ける、オフにする
- 続ける>目立つ形で配信:通知センターのみ
- 続ける>目立たない形で配信:音やバナーあり
通常の許可方法
通常の実装方法はこちらです。
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if let error = error {
// Handle the error here.
}
// Enable or disable features based on the authorization.
}
以下のようなアラートが表示されます。
暫定の許可方法
.provisional
を追加します。
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound, .badge, .provisional]) { granted, error in
if let error = error {
// Handle the error here.
}
// Provisional authorization granted.
}
リクエストすると、アプリ内でアラートが表示されません。
実際に通知を行うと、アプリの通知センターのみに表示されます。
ボタンも表示されます。
- 続ける、オフにする
- 続ける>目立つ形で配信:通知センターのみ
- 続ける>目立たない形で配信:音やバナーあり
サンプル
参考
Discussion