WNS 通知の優先順位
単純なヘッダーを WNS POST メッセージに指定して通知の優先順位を設定することにより、バッテリを節約する必要がある状況での通知の配信方法を制御できます。
Windows の電源
多くのユーザーがバッテリ駆動デバイスでのみ作業をしているため、電力使用量の最小化はすべてのアプリの標準要件になっています。 提供する価値よりも多くのエネルギーを消費するアプリは、ユーザーによってアンインストールされる可能性があります。 Windows オペレーティング システムでは可能な限りバッテリの電力使用量が抑えられていますが、効率的に動作するかどうかはアプリにかかっています。
WNS の優先順位は、重要度の低い作業をバッテリで処理しないようにする方法の 1 つです。 WNS の優先順位は、ある通知をすぐに配信する必要があるか、デバイスが電源に接続されるまで待機してよいかをシステムに指示します。 これらのヒントを使用することにより、システムはユーザーとアプリの両方にとって最も価値のあるタイミングで通知を配信できます。
デバイスの電源モード
Windows デバイスはそれぞれさまざまな電源モード (バッテリ、バッテリ節約、充電) で動作しており、電源モードが異なるアプリは動作が異なることをユーザーは予期しています。 デバイスがオンの場合、すべての通知が配信される必要があります。 バッテリ節約モードでは、最も重要な通知のみが配信される必要があります。 デバイスが電源に接続されている間は、同期操作やタイム クリティカルでない操作を完了できます。
Windows はユーザーやアプリにとってどの通知が重要であるかを識別しないため、システムはもっぱらアプリに依存して通知の適切な優先順位を設定します。
優先順位
プッシュ通知を送信するときにアプリが使用できる優先順位は 4 つあります。 優先順位は通知ごとに設定されるので、すぐに配信する必要のある通知 (IM メッセージなど) か、待機できる通知 (連絡先写真の更新など) かを選択できます。
優先順位は次のとおりです。
Priority | ユーザーのオーバーライド | 説明 | 例 |
---|---|---|---|
高 | はい。ユーザーは、バッテリ節約モードでは、アプリからの通知をすべて禁止することも、アプリがスロットルされないようにもできます。 | デバイスが通知を受信できる場合は、どのような状況でもすぐに配信される必要のある最も重要な通知。 デバイスをスリープ解除する必要のある VoIP 通話や重大なアラートがこのカテゴリに分類されます。 | VoIP 通話、タイム クリティカルなアラート |
Medium | はい。ユーザーは、バッテリ節約モードでは、アプリからの通知をすべて禁止することも、アプリがスロットルされないようにもできます。 | これらは "高" ほど重要ではなく、すぐに処理される必要はありませんが、バックグラウンドで実行されていない場合はユーザーが不快に感じる恐れがあります。 | セカンダリ電子メール アカウントの同期、ライブ タイルの更新。 |
低 | はい。ユーザーは、バッテリ節約モードでは、アプリからの通知をすべて禁止することも、アプリがスロットルされないようにもできます。 | ユーザーがデバイスを使用している場合か、バックグラウンド アクティビティに意味がある場合にのみ意味がある通知。 これらはキャッシュされ、ユーザーがサインインするかデバイスを電源に接続するまでは処理されません。 | 連絡先の状態 (オンライン/オフライン) |
多くのアプリでは、そのライフサイクルを通じて異なる優先順位の通知が処理されます。 優先順位は通知ごとに設定されるため、これは問題ではありません。 VoIP アプリは、受信呼び出しに対して高い優先順位の通知を送信し、連絡先がオンラインになると低い優先順位の通知を処理する場合があります。
優先順位の設定
通知要求への優先順位の設定は、POST 要求の追加ヘッダーである X-WNS-PRIORITY
を使用して行われます。 これは、優先順位にマップされる 1 から 4 までの整数値です。
優先順位の名前 | X-WNS-PRIORITY の値 | 既定値: |
---|---|---|
高 | 1 | トースト |
Medium | 2 | タイルとバッジ |
低 | 3 | 直接 |
下位互換性を確保するために優先順位を設定する必要はありません。 アプリで通知の優先順位を設定しない場合は、システムによって既定の優先順位が指定されます。 既定値は上の表に示されており、既存のバージョンの Windows の動作と一致します。
デスクトップ動作の詳細な一覧
多くの異なる SKU の Windows にアプリを配布する場合、通常は上のセクションの表に従うのが最善です。
各優先順位に対して推奨されるより具体的な動作を、次に一覧で示します。 これは、各デバイスが表のとおりに動作することを保証するものではありません。 OEM はこれとは異なる動作を自由に構成できます。ただし、大半はこの表に近い構成になっています。
デバイスの状態 | 優先順位: 高 | 優先順位: 中 | 優先順位: 低 | 優先順位: 非常に低い |
---|---|---|---|---|
画面オンまたは電源に接続 | 配信 | 配信 | 配信 | 配信 |
画面オフかつバッテリ駆動 | 配信 | ユーザーが除外した場合: 配信、それ以外: キャッシュ | ユーザーが除外した場合: 配信、それ以外: キャッシュ * | キャッシュ |
バッテリ節約機能有効 | ユーザーが除外した場合: 配信、それ以外: キャッシュ | ユーザーが除外した場合: 配信、それ以外: キャッシュ | ユーザーが除外した場合: 配信、それ以外: キャッシュ | キャッシュ |
バッテリ駆動 + バッテリ節約機能有効 + 画面オフ | ユーザーが除外した場合: 配信、それ以外: キャッシュ | ユーザーが除外した場合: 配信、それ以外: キャッシュ | ユーザーが除外した場合: 配信、それ以外: キャッシュ | キャッシュ |
Windows Phone ベースのデバイスの場合、画面オフかつバッテリのみでも、低い優先順位の通知が既定で配信されることにご注意ください。 これは、既存の MPNS ポリシーとの互換性を維持するためです。 また、4 行目と 5 行目の内容は同じで、シナリオが異なるだけです。
バッテリ節約でアプリを除外するには、ユーザーは、[設定] の [アプリによるバッテリの使用] に移動し、[アプリにバックグラウンド タスクの実行を許可する] を選択します。ユーザーがこれを選択すると、高、中、低の優先順位の通知について、そのアプリはバッテリ節約設定から除外されます。 BackgroundExecutionManager API を呼び出して、プログラムでユーザーのアクセス許可を要求することもできます。
関連トピック
Windows developer