具有挂起的更新激活的 Toast
可以使用 PendingUpdate 在 Toast 通知中创建多步骤交互。 例如,如下面所示,可以创建一系列 Toast,其中后续 Toast 依赖于前一个 Toast 的响应。
重要
需要桌面 Fall Creators Update 和通知库的 2.0.0:必须运行桌面版本 16299 或更高版本才能查看挂起的更新工作。 必须使用 UWP 社区工具包通知 NuGet 库的版本 2.0.0 或更高版本在按钮上分配 PendingUpdate。 PendingUpdate 仅在桌面上受支持,在其他设备上将被忽略。
先决条件
本文假定读者了解...
概述
若要实现使用挂起更新作为激活行为后的 Toast...
在 Toast 后台激活按钮上,指定 PendingUpdate 的 AfterActivationBehavior
发送 Toast 时分配标记(和(可选)组
当用户单击按钮时,后台任务将激活,Toast 将在屏幕上保持挂起的更新状态
在后台任务中,使用相同的 标记 和 组发送包含新内容的新 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);