【Swift】requestAuthorization()とは?使い方や引数の意味をわかりやすく解説!

iOSでローカル通知やプッシュ通知を使うには、まずユーザーの許可を得る必要があります。

このとき使用されるのが UNUserNotificationCenter.current().requestAuthorization() です。

この記事では、requestAuthorization() の基本的な役割や使い方、主要な引数の意味をわかりやすく丁寧に解説します。

requestAuthorization() とは?

requestAuthorization() は、ユーザーに通知の許可を求めるためのメソッドです。

具体的には、UserNotificationsフレームワーク に含まれる UNUserNotificationCenter クラスのインスタンスメソッド。

このメソッドを使うことで、アプリが通知を送信できるようにユーザーの同意を得るプロンプトを表示します。

一度許可を得た後でないと、UNNotificationRequest を使って通知をスケジュールしても表示されません。

ユーザーの同意がある場合のみ通知機能が有効になるため、通知を使うすべてのアプリで最初に呼び出す必要があります。

具体例:通知の許可をリクエストする

以下は、通知の許可を求めるための基本的なサンプルコードです。

このコードでは、通知の3つの種類(アラート、サウンド、バッジ)について許可を求めています。

ユーザーが許可または拒否を選ぶと、その結果がクロージャ内の granted に返されます。

  • granted == true → ユーザーが通知を許可した場合(通知を送信できるようになる)

  • granted == false → ユーザーが通知を拒否した場合(通知を送信しても表示されない)

つまり grantedBool型(true/false) で、通知の利用が許可されたかどうかを判定するための値です。

主要な引数とその意味

requestAuthorization() メソッドには次の2つの引数があります。

引数名 説明
options UNAuthorizationOptions 許可を求める通知の種類(配列形式)
completionHandler (Bool, Error?) -> Void ユーザーの応答とエラーを受け取るクロージャ

options には以下のような種類があります。

オプション名 内容
.alert 通知バナーなどのアラートを表示
.sound 通知音を鳴らす
.badge アプリアイコンにバッジを表示
.provisional サイレント通知の許可(ユーザーに表示せず通知を試す)
.criticalAlert 緊急アラート(特別な許可が必要)

通常のアプリでは .alert, .sound, .badge の3つを指定すれば十分です。

requestAuthorization() の活用シーン

このメソッドは、通知を活用するすべてのアプリにおいて不可欠なステップです。

特に以下のような場面で使われます。

  • ローカル通知を使ってリマインダーやタイマーを表示したいとき
  • プッシュ通知(リモート通知)を導入して、サーバーから通知を送りたいとき
  • 通知許可の状態をチェックし、UIでユーザーにリクエストを促したいとき
  • 許可の状態に応じて通知設定画面への誘導を行いたい場合

例えば「最初の起動時に許可をリクエストする」「設定画面で再リクエストする」など、ユーザー体験に合わせて柔軟に呼び出すタイミングを調整できます。

使用時の注意点

便利な requestAuthorization() ですが、いくつかの注意点があります。

  • ユーザーが一度拒否すると、再度許可を求めるプロンプトは表示されない
  • 拒否後に通知を有効にするには、ユーザー自身が「設定」アプリから変更する必要がある
  • 許可状態の確認には下記のように getNotificationSettings() を使う

まとめ

今回は UNUserNotificationCenter.current().requestAuthorization() について詳しく紹介しました。

  • 通知を表示するには、まずユーザーからの許可が必要
  • .alert, .sound, .badge などのオプションで細かく指定できる
  • 許可の結果はクロージャ内の granted で判定可能
  • UXを意識して適切なタイミングで許可を求めることが重要
  • 状態確認には getNotificationSettings() を併用する

通知機能を安全に、かつユーザーに配慮して使うために、requestAuthorization() の仕組みと挙動をしっかり理解しておくことが大切です。

これから通知機能を実装する際には、この記事を参考にして、丁寧な許可リクエストを設計してみてください。

 

おすすめの記事