メインコンテンツへスキップ
フォーカスモードは、仕事、睡眠、個人などの個別のモードを許可することで、iOSユーザーが通知をいつどのように受信するかを制御するのに役立ちます。各モードは、通知の可視性と配信動作を調整します。 緊急アラートやアカウントセキュリティなどの重要なユースケースをサポートするために、Appleは割り込みレベルを導入し、フォーカスモードがアクティブな場合でも、通知がいつどのように表示されるかを制御します。

割り込みレベル

割り込みレベルは、通知の緊急性と配信動作を決定します。4つのレベルがあります:

アクティブ(デフォルト)

標準優先度の通知。これには、サウンド、バイブレーション、および画面のウェイク動作が含まれます。フォーカスモードをバイパスしません。

時間に敏感

アクティブのように動作しますが、特別なバナーが含まれます。時間に敏感な通知は、フォーカスモードとスケジュールされた配信を突破できます。緊急のユーザーの注意が必要な場合にのみ使用してください。

パッシブ

優先度の低い通知。サウンドもバイブレーションもありません。ユーザーを中断せず、フォーカスモードを突破しません。

クリティカル

最高優先度の通知。すべてのデバイスコントロールとフォーカスモードをバイパスします。悪天候や健康アラートなどの緊急事態に使用されます。有効にするには、Appleからの事前承認が必要です。詳細については、クリティカルアラートのセットアップを参照してください。

例。時間に敏感な通知を示す画像。


OneSignalで割り込みレベルを設定する方法

OneSignalダッシュボードからプッシュを送信する際、Apple iOS設定の下に通知割り込みレベルがあります。デフォルトはアクティブです。 通知作成APIを使用する場合は、次のパラメーターを使用します:
  • ios_interruption_level"active""time-sensitive""passive"、または"critical"に設定します
  • ios_relevance_score:配信順序の重要度を示す0から1の数値(オプション)。

クリティカルアラートのセットアップ

クリティカルアラート:
  • おやすみモードとサイレントスイッチを無視します。
  • 優先度の高いケース(例:健康、セキュリティ)用に予約されています。
  • Appleからの明示的な承認が必要で、通常のプッシュ通知を有効にしている場合でも、ユーザーは個別にオプトインする必要があります。

クリティカルアラートのApple資格を要求する

  1. Appleのドキュメントを確認し、リクエストフォームに記入をクリックします。
  2. クリティカルアラート資格リクエストを選択します。
  3. フォームに記入してリクエストを送信します。
  4. Appleのレビューと承認を待ちます。

アプリにクリティカルアラート資格を追加する

Appleがリクエストを承認したら:
  1. Xcodeで.entitlementsファイルを開きます(ない場合は作成します)。
  2. 追加します:
<key>com.apple.developer.usernotifications.critical-alerts</key>
<true/>
  1. プロビジョニングプロファイルにこの資格が含まれていることを確認します:
  • 必要に応じて、Apple Developerポータルでプロビジョニングプロファイルを再生成します。
  • ダウンロードしてXcodeに再度追加します。

アプリコードでクリティカルアラート権限を要求する

クリティカルアラート権限は標準のプッシュ権限とは別であり、次のように要求する必要があります(Swiftを使用):
import UserNotifications

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge, .criticalAlert]) { granted, error in
    if let error = error {
        print("Authorization error: \(error)")
    } else {
        print("Critical alert permission granted: \(granted)")
    }
}
標準のプッシュ権限を取得した後、理想的にはオンボーディングフローでこれを要求する必要があります。

クリティカルアラートをテストする

  1. アプリをビルドして実行します。
  2. 上記のOneSignalで割り込みレベルを設定する方法の手順に従って、テストプッシュを送信します。

関連ドキュメント