この記事では、アプリへのコンテンツ配信に役立つ、3 つの種類の Windows プッシュ通知チャネル (プライマリ、セカンダリ、および代替) について説明します。
(プッシュ通知の作成方法の詳細については、「Windows プッシュ通知サービス (WNS) の概要」を参照してください。)
プッシュ チャネルの種類
Windows アプリに通知を送信するために使用できるプッシュ チャネルには 3 種類あります。 これらは次のとおりです。
プライマリ チャネル - "従来の" プッシュ チャネル。 ストア内の任意のアプリで、トースト通知、タイル通知、直接通知、バッジ通知の送信に使用できます。 こちらを参照してください。
セカンダリ タイルのチャネル - セカンダリ タイルにタイルの更新をプッシュするために使用します。 ユーザーのスタート画面にピン留めされたセカンダリ タイルにタイルまたはバッジ通知を送信する場合にのみ使用できます
代替チャネル - サポートされなくなりました - Creators Update に追加された新しい種類のチャネル。 ストアに登録されていないアプリを含め、任意の Windows アプリに直接通知を送信できます。 ここでも、代替チャネルはサポートされなくなったことに注意してください。
注
どのプッシュ チャネルを使用しても、アプリがデバイス上で実行されると、常にローカル トースト、タイル、バッジ通知を送信できます。 フォアグラウンド アプリ プロセスまたはバックグラウンド タスクからローカル通知を送信できます。
プライマリ チャネル
これらは現在、Windows で最もよく使用されているチャネルであり、アプリが Microsoft Store を通じて配布されるほぼすべてのシナリオに適しています。 すべての種類の通知をアプリに送信できます。
プライマリ チャネルは何を有効にしますか?
- タイルまたはバッジの更新をプライマリ タイルに送信する。 ユーザーがスタート画面にタイルをピン留めすることを選択した場合は、これが表示されるチャンスです。 アプリ内のエクスペリエンスに関する有用な情報やリマインダーを含む更新プログラムを送信します。
- トースト通知の送信。 トースト通知は、ユーザーの前ですぐに情報を取得する機会です。 ほとんどのアプリの上にシェルによって描画され、ユーザーが戻って後で操作できるように、アクション センターにライブ表示されます。
- バックグラウンド タスクをトリガーするための未加工通知の送信。 通知に基づいてユーザーに代わって何らかの作業を行いたい場合があります。 未加工の通知を使用すると、アプリのバックグラウンド タスクを実行できます
- TLS を使用して Windows によって提供される転送中のメッセージ暗号化。 メッセージは、WNS に送信され、ユーザーのデバイスに送信されるネットワーク上で暗号化されます。
プライマリ チャネルの制限事項
- WNS REST API を使用してプッシュ通知を送信する必要があります。これは、デバイス ベンダー間で標準ではありません。
- アプリごとに作成できるチャネルは 1 つだけです
- アプリを Microsoft Store に登録する必要がある
プライマリ チャネルの作成
PushNotificationChannel channel =
await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
セカンダリ タイル チャネル
これらは、タイルとバッジの更新をセカンダリ タイルにプッシュするために使用できるチャネルです。 これらは、グループ チャットの新しいメッセージや更新されたスポーツ スコアなど、アプリで操作できる興味深いアクションや情報をユーザーに通知するためにアプリによって使用されます。
セカンダリ タイル チャネルは何を有効にしますか?
- タイルまたはバッジ通知をセカンダリ タイルに送信する。 セカンダリ タイルは、ユーザーをアプリに戻す優れた方法です。 これらは重要な情報への深いリンクであり、タイルに関連情報を配置すると、何度も繰り返し戻すのに役立ちます。
- さまざまなタイル間のチャネル (および有効期限) の分離。 これにより、ユーザーがスタート画面にピン留めする可能性があるさまざまな種類のセカンダリ タイル間で、バックエンドのロジックを分離できます。
- TLS を使用して Windows によって提供される転送中のメッセージ暗号化。 メッセージは、WNS に送信され、ユーザーのデバイスに送信されるネットワーク上で暗号化されます。
セカンダリ タイル チャネルの制限事項
- トーストまたは未加工の通知は許可されません。 セカンダリ タイルに送信されたトースト通知または生通知は、システムによって無視されます。
- アプリを Microsoft Store に登録する必要がある
セカンダリ タイル チャネルの作成
PushNotificationChannel channel =
await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);
代替チャネル
代替チャネルを使用すると、アプリは、Microsoft Store に登録したり、アプリに使用されるプライマリ チャネルの外部にプッシュ チャネルを作成したりすることなく、プッシュ通知を送信できます。
注
2021 年 7 月 1 日より、WNS 経由で Web プッシュ チャネルまたは代替チャネルを使用してブラウザーベースの通知を送信する必要があるアプリケーションは、Microsoft Store にオンボードする必要があります。
代替チャネルは何を有効にしますか?
- 任意の Windows デバイスで実行されている Windows に直接プッシュ通知を送信します。 代替チャネルでは直接通知のみが許可されます (ただし、バックグラウンド タスクをウェイクアップして、トースト通知またはタイル通知をローカルに表示することもできます)。
- アプリ内でさまざまな機能に対して複数の生プッシュ チャネルを作成できます。 アプリは最大 1,000 個の代替チャネルを作成でき、それぞれ 30 日間有効です。 これらの各チャネルは、アプリによって個別に管理または取り消すことができます。
- 代替プッシュ チャネルは、Microsoft Store にアプリを登録せずに作成できます。 アプリを Microsoft Store に登録せずにデバイスにインストールする場合は、引き続きプッシュ通知を受信できます。
- サーバーは、W3C 標準 REST API と VAPID プロトコルを使用して通知をプッシュできます。 代替チャネルは W3C 標準プロトコルを使用するため、保守が必要なサーバー ロジックを簡略化できます。
- 完全なエンド ツー エンドのメッセージ暗号化。 プライマリ チャネルは転送中に暗号化を提供しますが、セキュリティを強化する必要がある場合は、代替チャネルを使用して、アプリが暗号化ヘッダーを通過してメッセージを保護できます。
代替チャネルの制限事項
- アプリのサーバーでは、トースト、タイル、バッジといった種類のプッシュ通知を送信することはできません。 直接プッシュ通知のみを送信できます。 アプリは引き続きバックグラウンド タスクからローカル通知を送信できます。
- プライマリ タイル チャネルまたはセカンダリ タイル チャネルとは異なる REST API が必要です。 標準の W3C REST API を使用すると、アプリでプッシュ トーストまたはタイルの更新を送信するための異なるロジックが必要になります
代替チャネルの作成
PushNotificationChannel webChannel =
await PushNotificationChannelManager.GetDefault().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(applicationServerKey, appChannelId);
チャネルの種類の比較
さまざまな種類のチャネルの簡単な比較を次に示します。
タイプ | トーストをプッシュしますか? | プッシュ タイル/バッジ | 未加工の通知をプッシュしますか? | 認証 | API | ストアの登録が必要ですか? | チャンネル | 暗号化 |
---|---|---|---|---|---|---|---|---|
プライマリ | はい | はい - プライマリ タイルのみ | はい | OAuth | WNS REST API | はい | アプリごとに 1 つ | 転送中 |
セカンダリ タイル | いいえ | はい - セカンダリ タイルのみ | いいえ | OAuth | WNS REST API | はい | セカンダリ タイルごとに 1 つ | 転送中 |
代替 | いいえ | いいえ | はい | 抜けた | WebPush W3C標準 | いいえ | アプリあたり 1,000 | 転送中 + ヘッダーパススルーでエンドツーエンドの暗号化が可能 (アプリ コードが必要) |
適切なチャネルの選択
一般に、アプリでプライマリ チャネルを使用することをお勧めします。ただし、いくつかの例外があります。
- タイルの更新をセカンダリ タイルにプッシュする場合は、セカンダリ タイル プッシュ チャネルを使用します。
- チャネルを他のサービス (ブラウザーの場合など) に渡す場合は、代替チャネルを使用します。
- Windows ストアに表示されないアプリ (LOB アプリなど) を作成する場合は、代替チャネルを使用します。
- サーバー上に既存の Web プッシュ コードがある場合、またはバックエンド サービスで複数のチャネルを再利用する必要がある場合は、代替チャネルを使用します。
関連記事
Windows developer