UWP toast

Windows10的自适应和交互式toast通知是一个新特性。它可以让你:

创建灵活的toast通知,包括内嵌图片及更多的内容,不在局限于之前Windows 8.1和Windows Phone 8.1提供的toast模板。

概述

Toast 通知使用 XML 构建,这通常包含以下关键元素:

  • <visual> 涵盖可供用户从视觉上查看的内容,包括文本和图像
  • <actions> 包含开发人员希望在通知内添加的按钮/输入
  • <audio> 指定在通知弹出时播放的声音

Toast通知的使用场景

Toast 通知支持四种默认场景,可在<toast><\toast>中设置scenario

  • default
  • reminder : 通知会持续显示在屏幕上
  • alarm : 通知会持续显示在屏幕上并且循环播放声音
  • inComingCall: 在Moblie下全屏显示等

Toast的XML结构

<toast>
    <visual/>
    <actions/>
    <audio/>
</toast>视觉(Visual)

  在视觉元素内,你必须正好有一个包含 Toast 的视觉内容的绑定元素。

  通用 Windows 平台 (UWP) 应用中的磁贴通知支持基于不同磁贴大小的多个模板。 但是,Toast 通知只有一个模板名称:ToastGeneric。 只有一个模板名称意味着:

    •   你可以更改 Toast 内容,例如添加另一行文本、添加嵌入式图像或将缩略图图像从显示应用图标更改为其他内容,并且在执行任意上述操作时无需担心更改整个模板或由于模板名称和内容之间的不匹配而创建无效的负载。
    •   你可以使用相同代码为专用于传递到不同类型的 Microsoft Windows 设备(包括手机、平板电脑、PC 和 Xbox One)的 Toast 通知构建相同的负载。 其中每台设备都将接受通知,并使用相应的视觉提示和交互模型根据其 UI策略向用户显示通知。

  有关视觉部分及其子元素中受支持的所有属性,请参阅下面的“架构”部分。 有关更多示例,请参阅下面的 XML 示例部分。

  

  以上是MSDN上对视觉的介绍

  <binding/>绑定元素

  而template的唯一值为ToastGeneric

  <text/> 文本

  <image/>图片

  src:图片源

  hint-crop:是否裁剪,none 不裁剪,circle 将图像裁剪成圆形

操作(actions)  

  在 UWP 应用中,你可以将按钮和其他输入添加到 Toast 通知,这可使用户在应用外执行更多操作。 这些操作在 <actions> 元素下指定,其中有两个可以指定的类型:

    •   <action> 这将显示为桌面和移动设备上的按钮。 你可以在 Toast 通知内指定最多五个自定义或系统操作。
    •   <input> 这允许用户提供输入,如对消息的快速回复或从下拉菜单中选择一个选项。

  <action> 和 <input> 在 Windows 设备系列内均是自适应的。 例如,在移动或桌面设备上,面向用户的 <action> 是可点击/单击的按钮。 文本 <input> 是用户可使用物理键盘或屏幕键盘输入文本的框。 这些元素还会适应将来的交互方案,如通过语音宣布的       操作或通过听写获取的文本输入。

  当用户采用某个操作时,你可以通过在 <action> 元素内指定 ActivationType 属性来执行以下操作之一:

    •   使用特定于操作的参数在前台激活应用,该参数可用于导航到特定页面/上下文。
    •   在不影响用户的情况下激活应用的后台任务。
    •   通过协议启动激活另一个应用。
    •   执行要执行的系统操作。 当前可用系统操作将推迟和解除计划的警报/提醒,这将在下面部分中进一步介绍。

  有关视觉部分及其子元素中受支持的所有属性,请参阅下面的“架构”部分。 有关更多示例,请参阅下面的 XML 示例部分。

  <input/>

  id:必填,用于后台和前台获取输入值  

  type:必填 ,有text和selection两个属性,显然字面意思

  title:选填,标题将呈现在输入的上方

  placeholderContent:选填,填写将在输入框中显示提示

  defaultInput:选填,设置默认值,type为text时将值视为字符串,selection时将值视为可选id之一

  <action/>

  content:必填 显示button的文本

  arguments:必填,类同input的id,用于检索用户是否操作

  hint-inputId:必填,需要填入与action关联的input的id,用于action和input的匹配

音频(audio)  

    自定义声音当前在面向桌面平台的 UWP 应用上不受支持;相反,你可以为你的桌面上的应用从 ms-winsoundevents 列表中进行选择。 移动平台上的 UWP 应用支持 ms-winsoundevents   以及采用以下格式的自定义声音:

    •   ms-appx:///
    •   ms-appdata:///

  有关 Toast 通知中的音频的信息(其中包括 ms-winsoundevents 的完整列表),请参阅音频架构页面

  src:选填,音频路径

  loop:选填,boolean ,是否循环,ture 循环播放、false 仅播放一次

  silent:选填,boolean,是否静音,true 静音、false 允许播放

Toast的Demo

  含有图片的Toast

    xml代码Demo

<?xml version="1.0" encoding="utf-8" ?>
<toast launch="app-defined-string">
  <visual>
    <binding template="ToastGeneric">
      <text>这是你的标题</text>
      <text>这是你的内容</text>
      <image placement="appLogoOverride" src="Assets/Square44x44Logo.scale-200.png" />
      <image placement="inline" src="Assets/test.png" />
    </binding>
  </visual>
</toast>

   含有输入的Toast

    xml代码Demo

<?xml version="1.0" encoding="utf-8" ?>
<toast>
  <visual>
  <binding template="ToastGeneric">
  <text>Hello World!</text>
  <text>回复toast</text>
  <image src = "ms-appx://Assets/Images/photo.jpg" placement="appLogoOverride"/>
  </binding>
  </visual>
  <actions>
    <input id = "reply" type="text" placeHolderContent="输入内容"/>
    <action content = "回复" arguments="reply" hint-inputId="reply"/>
  </actions>
  <audio src = "ms-winsoundevent:Notification.Default" />
</toast> 

   含有音频的Toast

    xml的Demo

<?xml version="1.0" encoding="utf-8" ?>
<toast launch="app-defined-string">
  <visual>
    <binding template="ToastGeneric">
      <text>提醒标题</text>
      <text>提醒内容</text>
      <!--<image placement="AppLogoOverride" src="oneAlarm.png" />-->
    </binding>
  </visual>
  <actions>
    <action content="确定" arguments="check" />
    <action content="取消" arguments="cancel" />
  </actions>
  <audio src="ms-winsoundevent:Notification.Looping.Call9"/>
</toast>

    C#代码

读取xml文件

   XDocument xd = XDocument.Load("XML/Pictrue.xml");

创建Toast模板

 XmlDocument doc = new XmlDocument();

利用xml创建Toast,利用ToastNotificationManeger创建Toast

 doc.LoadXml(xd.ToString());
 ToastNotification notification = new ToastNotification(doc);
 ToastNotificationManager.CreateToastNotifier().Show(notification);

 输入文本Toast

 

声音Toast

图片Toast

定时发送Toast

  若需要定时Toast通知

    使用ScheduledToastNotification类

 public ScheduledToastNotification(XmlDocument content, DateTimeOffset deliveryTime);public ScheduledToastNotification(XmlDocument content, DateTimeOffset deliveryTime, TimeSpan snoozeInterval, System.UInt32 maximumSnoozeCount);

  上面两个构造函数第一个是仅一次,第二个可以设置循环次数

  

  ToastNotificationManager.CreateToastNotifier().AddToSchedule(SToastNotification);

  将通知添加系统中

时间: 2024-10-25 20:07:12

UWP toast的相关文章

【UWP通用应用开发】使用Toast通知与动态磁贴

使用Toast通知示例 前面我们使用了MessageDialog来作为弹窗,这里来介绍一个更加高大上的Toast通知. Toast通知本质上动力是由XML来提供的,一开始我还不相信不知道XML原来有这么大的威力.现在就来看看和Toast相关的知识. 1)实例化ToastNotification类. ToastNotification toast1 = new ToastNotification(xdoc); 2)使用ToastNotificationManager来管理Toast通知,包括添加.

【Win10开发】Toast通知

Toast 通知是一种发送给用户的暂时消息,包含相关的.具有时效性的信息,并且提供对应用中相关内容的快速访问.它可显示你是在另一个应用中.在“开始”屏幕上.在锁屏上,还是在桌面上.Toast 应该被视为一种邀请,邀请你返回你的应用以关注一些有趣的内容. 我们知道,在win8平台,toast通知会有诸多模板,而到了win10平台,你依然可以使用这些模板,而win10也提供了一种通用性通知.我们来看一下例子. <toast> <visual> <binding template=

Win10 UWP开发系列——开源控件库:UWPCommunityToolkit

原文:Win10 UWP开发系列--开源控件库:UWPCommunityToolkit 在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在Github上:https://github.com/Microsoft/UWPCommunityToolkit 包括以下几个类库: 都可以很方便的从Nuget上安装. NuGet Package Name des

UWP -- Background Task 深入解析

原文:UWP -- Background Task 深入解析 1. 重点 锁屏问题 从 Windows 10 开始,用户无须再将你的应用添加到锁屏界面,即可利用后台任务,通用 Windows 应用必须在注册任何后台触发器类型之前调用 RequestAccessAsync: await BackgroundExecutionManager.RequestAccessAsync(); 资源限制 由于对于内存较低的设备的资源约束,后台任务可能具有内存限制,该限制决定了后台任务可以使用的内存上限 在内存

nomasp 博客导读:Android、UWP、Algorithm、Lisp(找工作中……

Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸.本博客会持续更新.感谢您的支持.欢迎您的关注与留言.博客有多个专栏,各自是关于 Android应用开发 .Windows App开发 . UWP(通用Windows平台)开发 . SICP习题解 和 Scheme语言学习 . 算法解析 与 LeetCode等题解 .而近期会加入的文章将主要是算法和Android.只是其他内容也会继续完好. About the Author 独立 Windows App 和

【Win10 应用开发】自适应Toast通知的XML文档结构

原文:[Win10 应用开发]自适应Toast通知的XML文档结构 老规矩,在开始之前老周先讲个故事. 话说公元2015年7月20日,VS 2015发布.于是,肯定有人会问老周了,C#6有啥新特性,我学不来啊.学不来的话你应该检讨.老周比较保守地计算一下,学会C# 6只需要20秒,不信的话,老周笔划笔划一下,你就明白了. 1.属性自动初始化.在4.0中引入了这样声明属性: public int VVVV { get; set;} 以前是属性包装一个字段,在初始化属性时只要对字段赋值即可,这个省略

win10 uwp 活动磁贴

本文翻译:https://mobileprogrammerblog.wordpress.com/2015/12/23/live-tiles-and-notifications-in-universal-windows-10-app/ 我会写很多质量很低文章,文章都是胡说,如果看不懂可以发到邮箱 动态磁贴是看起来很好看的东西,放在开始菜单,看来是下面图 win10总有很多看起来有用,但实际没什么卵用的东西,我一点不觉得用户觉得这个有用,但是我们能做活动磁贴UWP,微软一直把开发者当成用户. 做一个

UWP 应用通知Notifications

之前说UWP 使用OneDrive云存储2.x api(二)[全网首发],微识别实现了上传下载的功能,那么为了给用户更上一层楼的体验,那就是在上传下载完成之后,弹出一通知Notifications. 关于Notifications,在UWP Community Toolkit中也有简单介绍,不过微软还除了一个更为强大的, 专门介绍 Tiles 和 Notifications 的工具----Notifications Visualizer 商店搜索即可下载,这个貌似没有源代码.不过也不需要了.因为

[UWP]使用Picker实现一个简单的ColorPicker弹窗

在上一篇博文<[UWP]使用Popup构建UWP Picker>中我们简单讲述了一下使用Popup构建适用于MVVM框架下的弹窗层组件Picker的过程.但是没有应用实例的话可能体现不出Picker相对于ContentDialog的优点在哪里,毕竟Linus大神说过: Talk is cheap, show me the code! 我们假定要实现这样一个颜色选择器:当用户需要选择一个颜色时,应用弹出颜色选择器,用户选择完成后,点击"确定"按钮关闭弹窗,并且向调用方代码返回