トースト ヘッダー

通知に対してトースト ヘッダーを使用して、アクション センター内の互いに関連する複数の通知を視覚的にグループ化することができます。

重要

Desktop Creators Update と通知ライブラリの 1.4.0 が必要です。トースト ヘッダーを表示するには、デスクトップ ビルド 15063 以降を実行している必要があります。 トーストのコンテンツでヘッダーを構築するには、 UWP Community Toolkit Notifications NuGet ライブラリ のバージョン 1.4.0 以降を使用する必要があります。 ヘッダーはデスクトップでのみサポートされます。

以下に示すように、このグループの会話は "Camping!!" という 1 つのヘッダーの下にまとめられています。 会話内の個々のメッセージは、同じトースト ヘッダーを共有する別個のトースト通知です。

ヘッダーを含むトースト

通知は、カテゴリに基づいて視覚的にグループ化することもできます。たとえば、搭乗便のリマインダー、荷物の追跡などのカテゴリーを使用できます。

トーストへのヘッダーの追加

トースト通知にヘッダーを追加する方法は次のとおりです。

注意

ヘッダーはデスクトップでのみサポートされます。 ヘッダーをサポートしないデバイスでは、ヘッダーが無視されます。

new ToastContentBuilder()
    .AddHeader("6289", "Camping!!", "action=openConversation&id=6289")
    .AddText("Anyone have a sleeping bag I can borrow?");

以上をまとめると次のようになります。

  1. HeaderToastContent に追加します。
  2. 必要な IdTitleArguments プロパティを割り当てます。
  3. 通知を送信します (詳細情報)。
  4. 別の通知で同じヘッダー ID (Id) を使用して、それらの通知を同じヘッダーの下にまとめます。 Id は複数の通知をグループ化するかどうかの判断に使用される唯一のプロパティであり、これが同じであれば、TitleArguments が異なっていても同じグループに分類されます。 TitleArguments は、グループ内の最新の通知のタイトルと引数が使用されます。 その最新の通知が削除された場合、2 番目に新しい通知が繰り上がって最新となり、その通知の TitleArguments が使用されます。

ヘッダーからのアクティブ化の処理

ヘッダーはクリック可能です。ユーザーはヘッダーをクリックしてアプリから詳細情報を表示できます。

そのため、アプリではトースト自体の起動引数に似た Arguments をヘッダーに設定できます。

アクティブ化は、通常のトーストのアクティブ化と同じ方法で処理されるため、ユーザーがトースト本体やトーストのボタンをクリックした場合と同様、App.xaml.csOnActivated メソッドでこれらの引数を取得できます。

protected override void OnActivated(IActivatedEventArgs e)
{
    // Handle toast activation
    if (e is ToastNotificationActivatedEventArgs)
    {
        // Arguments specified from the header
        string arguments = (e as ToastNotificationActivatedEventArgs).Argument;
    }
}

追加情報

ヘッダーは複数の通知を視覚的に分類し、グループ化します。 アプリが保持できる通知の最大数 (20) や、先入れ先出し法による通知の一覧の処理など、その他のしくみはヘッダーを使用しても変わりません。

ヘッダー内で通知が表示される順序は、アプリごとに、そのアプリの最新の通知 (ヘッダーの一部である場合は、ヘッダー グループ全体) が最初に表示されます。

Id には、任意の文字列を設定できます。 ToastHeader のどのプロパティにも、長さや文字の制限はありません。 唯一の制限は、XML トースト コンテンツ全体の上限が 5 KB ということのみです。

ヘッダーを作成しても、[詳細を表示] ボタンが表示される前に、アクション センター内に表示される通知の数は変わりません (この数は既定で 3 ですが、ユーザーが設定で [システム] を選択して、通知についてアプリごとに構成できます)。

アプリのタイトルをクリックした場合と同様、ヘッダーをクリックしても、このヘッダーに属する通知は消去されません (関連の通知を消去するには、アプリでトースト API を使用する必要があります)。