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