Provisional Authorizationによるお試しプッシュ通知の実装
従来ユーザーに通知を送信する許可を求める際、ユーザーはアプリからの通知を見る前に、許可するか拒否するかを決定しなければならない。
iOS12から導入されたProvisional(暫定的という意味)なプッシュ通知では、ユーザーに明示的な許諾をとることなく暫定的な通知を送信することができる。 実際に必要なタイミングでプッシュ通知を受けてから正式な許諾を取るため、ユーザーが通知を許可しやすくなる可能性は高まる(質の高いプッシュ通知であることが前提)
ただし、暫定的なプッシュ通知はサイレントに配信される。
通知センターにのみ表示され、音やバナーでユーザーの邪魔をしたり、ロック画面に表示されることはない。Appアイコンにもバッジがつかない 通知の継続または停止を促すボタンも含まれる。
実装方法
通知の許諾を取るタイミングでオプションに .provisional を追加するだけでよい
code:Swift
// クロージャ版
UNUserNotificationCenter.current().requestAuthorization(options: options) { granted, error in
}
// Concurrency版
Task {
let granted = try await UNUserNotificationCenter.current().requestAuthorization(options: options)
}
上記の方法でprovisionalな通知を送る設定ができたら、authorizationStatusはprovisionalになっている
code:Swift
let settings = await UNUserNotificationCenter.current().notificationSettings()
print(settings.authorizationStatus) // (UNAuthorizationStatus) provisional
この状態で通知を受け取ると、通知センターにのみ通知が表示される
https://scrapbox.io/files/66d67395b8be3a001c2f63e6.jpg
ユーザーは実際に通知を受け取ってから通知のオン/オフを判断することができる
https://scrapbox.io/files/66d673a3a0a39b001ca1f18a.jpghttps://scrapbox.io/files/66d6739facab7d001cf6c894.jpg
セッション動画
現在は動画が非公開になっている