通知
通知は、デバイスがロックされているか使用中であるかに関係なく、タイムリーで重要な情報を人々に提供できます。たとえば、通知は、メッセージが到着したとき、イベントが発生しようとしているとき、新しいデータが利用可能になったとき、またはステータスが変更されたときに合図できます。
人々は自分が気にかけていることについての通知を受け取ることを評価していますが、中断されることは常に評価しているわけではありません。人々が全体的な体験を管理できるためには、何らかの通知を送信する前に許可を得る必要があり、システムでは、[Settings(設定)] > [Notificatios(通知)] で、人々がこの決定を変更し、アラートスタイル、プレビュー、および Siri 操作を調整できます。[Settings(設定)] > [Focus(フォーカス)] で、すべての通知 (一部のロケールの政府アラートを除く) を無音にすることもできます。
開発者向けガイダンスについては、UserNotifications (UserNotifications) を参照してください。
人々の通知管理を助ける
iOS 15 以降では、配信時間を指定してフォーカスを設定することで、通知の動作をきめ細かく調整できます。配信スケジュールを使用すると、通知アラートをすぐに受信するか、選択した時間に配信される要約で受信するかを選択できます。フォーカスは、睡眠、仕事、読書、運転などのアクティビティに対して定義した期間中に通知をフィルタリングするのに役立ちます。
人々は、フォーカスを突破して通知アラートを配信できる連絡先とアプリを特定します。 たとえば、Work Focus (仕事に焦点) では、通知が届いたらすぐに、同僚、家族、および仕事関連のアプリからアラートを受信したい場合があります。また、フォーカス 中にすべての 時間に限った 通知アラートを受信したい場合もあります。時間に限った 通知には、人々がすぐに入手できることを評価する重要な情報が含まれます。
重要
フォーカス が通知アラートの配信を遅らせても、通知自体は到着するとすぐに利用可能になります。
これらの動作のカスタマイズをサポートするには、まずあなたのアプリが送信できる通知の型を特定します。あなたのアプリが電話やメッセージなどの直接通信をサポートしている場合は、通信 通知を使用して下さい。他のすべての型のタスクでは、非通信 通知を使用して下さい。通信通知をサポートするには、SiriKit インテントを採用しますが、これは人々が Siri を使用して通知動作をカスタマイズできることを意味します。開発者向けガイダンスについては、INSendMessageIntent (INSendMessageIntent) および UNNotificationContentProving (UNNotificationContentProving) を参照してください。
アプリが送信できる非通信通知ごとに、システム定義の中断レベルを指定して下さい。システムは、割り込みレベルを使用して、アラートをいつ配信するかを決定するかを助けます。通信通知が到着すると、システムは送信者を使ってアラートをいつ配信するかを決定します。
システムは、非通信通知に対して 4 つの中断レベルを定義しています。
システムで定義された各中断レベルの通知アラートは、以下のように動作します。
中断レベル | スケジュールされた 配信の オーバーライド | フォーカスの突破 | 鳴らす/鳴らさない スイッチの オーバーライド |
パッシブ | いいえ | いいえ | いいえ |
アクティブ | いいえ | いいえ | いいえ |
時間に限った | はい | はい | いいえ |
重要 | はい | はい | はい |
注意
重要な通知は 鳴らす/鳴らさない スイッチをオーバーライドし、スケジュールされた配信と フォーカス を突破するため、送信する資格を取得しなければなりません。
各通知の緊急性を正確に表すことにより、信頼をビルドします。 すべての通知をオフにするなど、アプリからの通知の受信方法を調整する方法はいくつかあります。そのため、中断レベルを割り当てるときは、できるだけ現実的にすることが不可欠です。通知が優先度の低い情報で中断するために高いレベルの緊急性を使用していると人々に感じさせたくないでしょうから。
時間に限った 中断レベルは、その時に関連する通知にのみ使用してください。 時間に限った 通知が フォーカス またはスケジュールされた配信を突破できるようにする利点を人々が理解できるように、通知が現在発生しているイベントまたは 1 時間以内に発生するイベントに関するものであることを確認してください。あなたのアプリから 時間に限った 通知が初めて届くと、システムはそのような通知がどのように機能するかを説明し、情報にすぐに注意を払う必要があることに同意しない場合に通知をオフにする方法を提供します。その後、システムは定期的に、時間に限った 通知がどのように機能しているかを評価するための追加の機会を人々に提供します。開発者向けガイダンスについては、UNNotificationInterruptionLevel (UNNotificationInterruptionLevel) を参照してください。
マーケット通知を送信するためには 時間に限った 割り込みレベルを決して使用しないでください。 人々はあなたのアプリからマーケット通知を受け取ることに同意したかもしれませんが、そのような通知は フォーカス やスケジュールされた配信設定を決して突破してはいけません。
優れた通知体験のデザイン
人々が一目で理解できる、豊かで価値の高い情報の提供を目指しましょう。
通知コンテンツのコンテキストを提供する場合は、短いタイトルを作成します。 通知の上部、最も目立つ場所にシステムはタイトルを表示します。非通信通知にタイトルを指定しない場合、システムはアプリ名を表示します。通信通知では、システムはタイトル領域に送信者の名前を自動的に表示します。通知タイトル領域が目立つため、有用な情報を提供するのに最適な場所です。たとえば、非通信通知には、見出し、イベント名、または電子メールの件名が表示されます。New Document (新規文書) のように一般的なタイトルしか提供できない場合は、代わりにシステムにあなたのアプリ名を表示させる方がよいでしょう。
簡潔で読みやすい通知コンテンツを作成します。 完全な文、文の大文字小文字、適切な句読点を使用し、メッセージを切り捨てないでください。システムは必要に応じてこれを自動的に行います。アプリを開いたり、特定のスクリーンに移動したり、特定のボタンをタップしたり、通知が消えた後に覚えにくいその他のタスクを実行するように人々に指示することは避けてください。
通知には、取り扱いの難しい個人情報、または機密情報を含めないでください。 通知を受け取ったときに人々が何をするか予測することはできないため、デバイスのスクリーンに表示されるかもしれない個人情報を含めないようにすることが重要です。
ユーザが応答していなくても、同じものに対して複数の通知を送信することは避けてください。 人々は都合の良いときに通知に注意を向けます。同じことについて複数の通知を送信すると、通知センター がいっぱいになり、人々があなたのアプリからのすべての通知をオフにする可能性があります。
通知プレビューが非表示になっているときに表示する一般的な説明テキストを提供します。 [Setting(設定)] で、人々はすべてのアプリの通知プレビューを非表示にすることを選べます。この状況では、システムはアプリアイコンとデフォルトのタイトル 通知 のみを表示します。通知全体を表示するかどうかを判断するのに十分なコンテキストを人々に提供するには、"Friend Request(友達リクエスト)"、"New Comment(新しいコメント)"、"Reminder(リマインダー)"、"Shipment(発送)" などの詳細をあまり明らかにせずに、通知の内容を簡潔に説明する本文テキストを記述します。開発者向けガイダンスについては、hiddenPreviewsBodyPlaceholder を参照してください。
アプリの名前やアイコンは含めないでください。 システムは、各通知の最先端にアプリアイコンの大きなバージョンを自動的に表示します。通信通知では、システムは送信者の連絡先イメージ (またはアバター) に小さなバージョンのアイコンのバッジを付けて表示します。
通知を補足するサウンドを提供することを検討してください。 サウンドは、アプリの通知を区別し、スクリーンを見ないで誰かの注意を引くための優れた方法です。アプリのスタイルに合わせてカスタムサウンドを作成することも、システムが提供するアラートサウンドを使用することもできます。カスタムサウンドを使用する場合は、短く、独特で、プロが制作したサウンドであることを確認してください。通知サウンドはユーザ体験を向上させられますが、重要な情報を伝えるために通知音に頼らないでください。人々には通知サウンドが聞こえないかもしれません。アラートサウンドに伴う振動を有効にすることもできますが、プログラムでそのような振動を有効にすることはできません。開発者向けガイダンスについては、UNNotificationSound (UNNotificationSound) を参照してください。
通知アクションの提供
通知には、あなたのアプリを開かずにアクションを実行するために人々が使用する最大 4 つのボタンを含むカスタマイズ可能な詳細ビューを表示できます。たとえば、カレンダのイベント通知は、イベントのアラームを数分間延期する スヌーズ ボタンがあります。
タッチし続けるジェスチャを使用して、通知プレビューを表示するか、ロックされていないデバイスで下にスワイプすることで、詳細ビューを開くことができます。開発者向けガイダンスについては、通知の処理および通知関連のアクション (Handling Notifications and Notification-Related Actions) を参照してください。
通知のコンテキストで意味のある有益なアクションを提供して下さい。 あなたのアプリを開く必要がない、一般的で時間節約のタスクを実行できるアクションをお勧めします。それぞれのボタンごとに、アクションの結果を明確に説明する、短いタイトルケースの用語またはフレーズを使用します。あなたのアプリ名や無関係な情報をタイトルに含めないでください。切り捨てを避けるためにテキストを簡潔にし、テキストを書くときに地方の位置を考慮に入れてください。
アプリを開くだけの通知アクションを提供しないでください。 通知またはそのプレビューを人々がタップすると、アプリが関連するスクリーンを開くことを期待しているため、同じことを行うアクションボタンを表示すると、詳細ビューが乱雑になり、混乱する可能性があります。
破壊的なアクションを提供することは避けてください。 破壊的なアクションを提供しなければならない場合は、意図しない結果を回避するのに十分なコンテキストを人々が持っていることを確認してください。破壊的であると特定したアクションは赤で表示されます。
各通知アクションごとに、わかりやすく簡潔な象形文字を提供して下さい。 象形文字はアクションの意味を強化し、人々がアクションの機能を即座に理解できるようにします。アクションのタイトルの末尾に象形文字をシステムは表示します。SF シンボル を使用する場合、コマンドを表す既存のシンボルを選択するか、関連するシンボルを編集してカスタムの象形文字を作成できます。
開発者向けガイダンスについては、UNNotificationAction (UNNotificationAction) の icon (icon) プロパティを参照してください。
バッジ
アプリのアイコンにバッジを付けて、未読の通知の数を示すことができます。開発者向けガイダンスについては、applicationIconBadgeNumber (applicationIconBadgeNumber) を参照してください。
バッジは、未読の通知の数を示すためにのみ使用してください。 天気関連のデータ、日時、株価、ゲームのスコアなど、他の型の数値情報を伝えるためにバッジを使用しないでください。
重要な情報を伝えるためにはバッジを使用しないでください。 人々はあなたのアプリのバッジの選択を止めることができるため、重要な情報を伝達するためにバッジに依存している場合、人々がそれを見逃すリスクがあります。
バッジを最新の状態に保ちます。 ユーザが対応する情報を表示したらすぐに、アプリのバッジを更新して下さい。新しい情報が利用可能であると人々に思わせたくはないでしょう。ただ、彼らがすでにそれを見ていることに気付くだけです。バッジの数をゼロに減らすと、通知センター から関連するすべての通知が削除されることに注意してください。
売買通知の送信
そのような情報を人々が受け取ることに明示的に同意しない限り、通知を使用して売買または宣伝のコンテンツを送信しないでください。ユーザがあなたのアプリに関連した新機能、コンテンツ、またはイベントについて知りたい場合は、売買通知を受信する許可を与えられます。たとえば、サブスクリプションアプリのユーザは、サブスクライバーになるためのオファーを取得することを高く評価し、ゲームのプレーヤーは、ライブイベントに関連する特別オファーを受け取りたいでしょう。
宣伝や売買の通知を送信したい場合は、人々の許可を得てください。 これらの通知を人々に送信する前に、そのための明示的な許可を受け取らなければなりません。送信したい情報の型を説明し、参加または不参加の明確な方法を人々に提供するアラート、モーダルビュー、またはその他のインターフェイスを作成しましょう。
人々があなたのアプリ内で通知設定を管理できるようにします。 情報通知または売買通知を送信する許可を要求することに加えて、人々が選択を変更できるアプリ内設定スクリーンも提供しなければなりません。ガイダンスについては、設定 を参照してください。