トースト ヘッダーToast headers

通知に対してトースト ヘッダーを使用して、アクション センター内の互いに関連する複数の通知を視覚的にグループ化することができます。You can visually group a set of related notifications inside Action Center by using a toast header on your notifications.

重要

デスクトップ Creators Update と通知ライブラリの 1.4.0 必要:デスクトップ ビルド 15063 以上トーストを表示するヘッダーを実行する必要があります。Requires Desktop Creators Update and 1.4.0 of Notifications library: You must be running Desktop build 15063 or higher to see toast headers. トーストのコンテンツ内にヘッダーを作成するには、UWP コミュニティ ツールキットの Notifications NuGet ライブラリ、バージョン 1.4.0 以上を使用する必要があります。You must use version 1.4.0 or higher of the UWP Community Toolkit Notifications NuGet library to construct the header in your toast's content. ヘッダーはデスクトップでのみサポートされます。Headers are only supported on Desktop.

以下に示すように、このグループの会話は "Camping!!" という 1 つのヘッダーの下にまとめられています。As seen below, this group conversation is unified under a single header, "Camping!!". 会話内の個々のメッセージは、同じトースト ヘッダーを共有する別個のトースト通知です。Each individual message in the conversation is a separate toast notification sharing the same toast header.

Toasts with header

通知は、カテゴリに基づいて視覚的にグループ化することもできます。たとえば、搭乗便のリマインダー、荷物の追跡などのカテゴリーを使用できます。You can also choose to visually group your notifications by category too, like flight reminders, package tracking, and more.

トーストへのヘッダーの追加Add a header to a toast

トースト通知にヘッダーを追加する方法は次のとおりです。Here's how you add a header to a toast notification.

注意

ヘッダーはデスクトップでのみサポートされます。Headers are only supported on Desktop. ヘッダーをサポートしないデバイスでは、ヘッダーが無視されます。Devices that don't support headers will simply ignore the header.

ToastContent toastContent = new ToastContent()
{
    Header = new ToastHeader()
    {
        Id = "6289",
        Title = "Camping!!",
        Arguments = "action=openConversation&id=6289",
    },

    Visual = new ToastVisual() { ... }
};
<toast>

    <header
        id="6289"
        title="Camping!!"
        arguments="action=openConversation&amp;id=6289"/>

    <visual>
        ...
    </visual>

</toast>

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

  1. HeaderToastContent に追加します。Add the Header to your ToastContent
  2. 必要な IdTitleArguments プロパティを割り当てます。Assign the required Id, Title, and Arguments properties
  3. 通知を送信します (詳細情報)。Send your notification (learn more)
  4. 別の通知で同じヘッダー ID (Id) を使用して、それらの通知を同じヘッダーの下にまとめます。On another notification, use the same header Id to unify them under the header. Id は複数の通知をグループ化するかどうかの判断に使用される唯一のプロパティであり、これが同じであれば、TitleArguments が異なっていても同じグループに分類されます。The Id is the only property used to determine whether the notifications should be grouped, meaning the Title and Arguments can be different. TitleArguments は、グループ内の最新の通知のタイトルと引数が使用されます。The Title and Arguments from the most recent notification within a group are used. その最新の通知が削除された場合、2 番目に新しい通知が繰り上がって最新となり、その通知の TitleArguments が使用されます。If that notification gets removed, then the Title and Arguments falls back to the next most recent notification.

ヘッダーからのアクティブ化の処理Handle activation from a header

ヘッダーはクリック可能です。ユーザーはヘッダーをクリックしてアプリから詳細情報を表示できます。Headers are clickable by users, so that the user can click the header to find out more from your app.

そのため、アプリではトースト自体の起動引数に似た Arguments をヘッダーに設定できます。Therefore, apps can provide Arguments on the header, similar to the launch arguments on the toast itself.

アクティブ化は、通常のトーストのアクティブ化と同じ方法で処理されるため、ユーザーがトースト本体やトーストのボタンをクリックした場合と同様、App.xaml.csOnActivated メソッドでこれらの引数を取得できます。Activation is handled identical to normal toast activation, meaning you can retrieve these arguments in the OnActivated method of App.xaml.cs just like you do when the user clicks the body of your toast or a button on your toast.

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

追加情報Additional info

ヘッダーは複数の通知を視覚的に分類し、グループ化します。The header visually separates and groups notifications. アプリが保持できる通知の最大数 (20) や、先入れ先出し法による通知の一覧の処理など、その他のしくみはヘッダーを使用しても変わりません。It doesn't change any other logistics about the maximum number of notifications an app can have (20) and the first-in-first-out behavior of the notifications list.

ヘッダー内の通知の順序は、次のとおりです.特定のアプリのアプリ (およびすべてのヘッダー グループ ヘッダーの一部の場合) から最新の通知は、先頭に表示されます。The order of notifications within headers are as follows... For a given app, the most recent notification from the app (and the entire header group if part of a header) will appear first.

Id には、任意の文字列を設定できます。The Id can be any string you choose. ToastHeader のどのプロパティにも、長さや文字の制限はありません。There are no length or character restrictions on any of the properties in ToastHeader. 唯一の制限は、XML トースト コンテンツ全体の上限が 5 KB ということのみです。The only constraint is that your entire XML toast content cannot be larger than 5 KB.

ヘッダーを作成しても、[詳細を表示] ボタンが表示される前に、アクション センター内に表示される通知の数は変わりません (この数は既定で 3 ですが、ユーザーが設定で [システム] を選択して、通知についてアプリごとに構成できます)。Creating headers doesn't change the number of notifications shown inside Action Center before the "See more" button appears (this number is 3 by default and can be configured by the user for each app in system Settings for notifications).

アプリのタイトルをクリックした場合と同様、ヘッダーをクリックしても、このヘッダーに属する通知は消去されません (関連の通知を消去するには、アプリでトースト API を使用する必要があります)。Clicking on the header, just like clicking on the app title, does not clear any notifications belonging to this header (your app should use the toast APIs to clear the relevant notifications).