次の方法で共有


更新プログラムのアクティブ化が保留中のトースト

PendingUpdate を使用して、トースト通知で複数ステップの対話を作成できます。 たとえば、次に示すように、後続のトーストが前のトーストからの応答に依存する一連のトーストを作成できます。

保留中の更新 でトーストを する

Von Bedeutung

Desktop Fall Creators Update と通知ライブラリの 2.0.0 が必要です。保留中の更新作業を表示するには、デスクトップ ビルド 16299 以降を実行している必要があります。 ボタンに PendingUpdate を割り当てるには、UWP Community Toolkit Notifications NuGet ライブラリ のバージョン 2.0.0 以降 使用する必要があります。 PendingUpdate はデスクトップでのみサポートされており、他のデバイスでは無視されます。

[前提条件]

この記事では、実用的な知識を前提としています...

概要

アクティベーション後の動作として保留中の更新を使用するトーストを実装するには...

  1. トーストの背景のアクティブ化ボタンでは、AfterActivationBehaviorPendingUpdate として指定します。

  2. トーストを送信する際に、タグ を割り当て(必要に応じて グループも)します

  3. ユーザーがボタンをクリックすると、バックグラウンド タスクがアクティブになり、トーストが保留中の更新状態で画面に保持されます

  4. バックグラウンド タスク内で、同じ タググループ を使用して、新しいコンテンツを含むトースト通知を送信してください。

PendingUpdateを割り当てる

バックグラウンドのアクティブ化ボタンで、AfterActivationBehaviorPendingUpdateに設定します。 ActivationType背景であるボタンに対してのみ機能します。

new ToastContentBuilder()

    .AddText("Would you like to order lunch today?")

    .AddButton(new ToastButton("Yes", "action=orderLunch")
    {
        ActivationType = ToastActivationType.Background,

        ActivationOptions = new ToastActivationOptions()
        {
            AfterActivationBehavior = ToastAfterActivationBehavior.PendingUpdate
        }
    });

通知でタグを使用する

後で通知を置き換えるには、通知に タグ (および必要に応じて グループ) を割り当てる必要があります。

// Create the notification
var notif = new ToastNotification(content.GetXml())
{
    Tag = "lunch"
};

// And show it
ToastNotificationManager.CreateToastNotifier().Show(notif);

トーストメッセージを新しいコンテンツに置き換える

ユーザーがボタンをクリックすると、バックグラウンド タスクがトリガーされ、トーストを新しいコンテンツに置き換える必要があります。 新しいトーストを タグ で送信し、グループ で置き換えるだけです。

ユーザーがトーストを既に操作しているため、ボタンのクリックに応じて、置換時にオーディオをサイレント に設定することを強くお勧 めします。

// Generate new content
ToastContent content = new ToastContent()
{
    ...

    // We disable audio on all subsequent toasts since they appear right after the user
    // clicked something, so the user's attention is already captured
    Audio = new ToastAudio() { Silent = true }
};

// Create the new notification
var notif = new ToastNotification(content.GetXml())
{
    Tag = "lunch"
};

// And replace the old one with this one
ToastNotificationManager.CreateToastNotifier().Show(notif);