💨

[iOS]暫定的な通知を行う

2021/07/16に公開

通知の許可

通知が許可されるかどうかは、デベロッパーにとって重要な課題かと思います。事前にユーザーに説明したとしても、情報不足により通知を拒否される場合があります。
少し前のiOS12から暫定的な許可という方法がありますが、自分はしばらく忘れていました。今回触る機会があったので方法をまとめました。

https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications

暫定的な許可について

暫定的な許可にについては以下の特徴があります

  • 試験的に通知を出せる
  • 通知センターのみに表示される(音やバナー、ロック画面には表示されない)
  • 通知を保持するかオフにするかをユーザーに求めるボタンが含まれる

以下のようなダイアログが表示されます。

  • 続ける、オフにする
  • 続ける>目立つ形で配信:通知センターのみ
  • 続ける>目立たない形で配信:音やバナーあり

通常の許可方法

通常の実装方法はこちらです。

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.
}

リクエストすると、アプリ内でアラートが表示されません。
実際に通知を行うと、アプリの通知センターのみに表示されます。
ボタンも表示されます。

  • 続ける、オフにする
  • 続ける>目立つ形で配信:通知センターのみ
  • 続ける>目立たない形で配信:音やバナーあり

サンプル

https://github.com/usk-sample/NotificationSample

参考

https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications

Discussion