可以通过向通知中心添加标头,直观地对通知中心中的一组相关通知进行分组。
在下面的示例中,此组对话在单个标头“露营!!”下统一。 对话中的每个单独消息都是共享同一标头的单独应用通知。
还可以按类别直观地对通知进行分组,例如航班提醒、包裹跟踪等等。
有关应用通知的详细信息,请参阅 应用通知概述。
向通知添加标头
注释
AppNotificationBuilder 当前不包含方法 SetHeader ,因此直接将 XML 有效负载与 AppNotification 构造函数一起使用。
using Microsoft.Windows.AppNotifications;
string xml = @"
<toast>
<header id='6289' title='Camping!!' arguments='action=openConversation&id=6289'/>
<visual>
<binding template='ToastGeneric'>
<text>Anyone have a sleeping bag I can borrow?</text>
</binding>
</visual>
</toast>";
var notification = new AppNotification(xml);
AppNotificationManager.Default.Show(notification);
若要在同一标头下对多个通知进行分组,请对每个通知使用相同的标头 ID 。 ID 是用于确定分组的唯一属性 , 标题和参数在通知之间可能有所不同。 组中最新通知的值将被显示。 如果删除了该通知,则值会回退到下一个最新通知。
处理标题中的激活
标头可点击。 标头上的 Arguments 属性指定当用户单击标头时传递给应用的上下文,类似于在通知本身上启动参数。
通过 NotificationInvoked 事件处理来自标头的激活,与任何其他通知激活相同。 有关设置激活的详细信息,请参阅 应用通知快速入门。
AppNotificationManager.Default.NotificationInvoked += (sender, args) =>
{
// For the header defined above, args.Argument contains:
// "action=openConversation&id=6289"
string arguments = args.Argument;
};
其他详细信息
- 标头在视觉上用于分隔和分组通知,但不会更改应用可以拥有的最大通知数(20)或通知列表的先进先出行为。
- ID 可以是任何字符串。 标头属性没有长度或字符限制。 唯一的约束是整个 XML 通知内容不能超过 5 KB。
- 创建标头不会在“查看更多”按钮出现之前更改通知中心中显示的通知数(默认情况下,由系统通知设置中的用户可配置) 。
- 单击标头不会清除属于该标头的通知。 应用应使用通知 API 清除相关通知。