具有挂起的更新激活的 Toast

可以使用 PendingUpdate 在 Toast 通知中创建多步骤交互。 例如,如下面所示,可以创建一系列 Toast,其中后续 Toast 依赖于前一个 Toast 的响应。

具有挂起更新的 Toast

重要

需要桌面 Fall Creators Update 和通知库的 2.0.0:必须运行桌面版本 16299 或更高版本才能查看挂起的更新工作。 必须使用 UWP 社区工具包通知 NuGet 库的版本 2.0.0 或更高版本在按钮上分配 PendingUpdatePendingUpdate 仅在桌面上受支持,在其他设备上将被忽略。

先决条件

本文假定读者了解...

概述

若要实现使用挂起更新作为激活行为后的 Toast...

  1. 在 Toast 后台激活按钮上,指定 PendingUpdate 的 AfterActivationBehavior

  2. 发送 Toast 时分配标记(和(可选)组

  3. 当用户单击按钮时,后台任务将激活,Toast 将在屏幕上保持挂起的更新状态

  4. 在后台任务中,使用相同的 标记组发送包含新内容的新 Toast

Assign PendingUpdate

在后台激活按钮上,将 AfterActivationBehavior 设置为 PendingUpdate。 请注意,这仅适用于具有 Background 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);

将 Toast 替换为新内容

为了响应用户单击按钮,将触发后台任务,你需要将 Toast 替换为新内容。 只需使用相同的标记发送新的 Toast 即可替换 Toast

强烈建议在替换时将音频设置为无提示,以响应按钮单击,因为用户已与 Toast 交互。

// 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);