传说好像明天就是世界末日了。。。。。
好吧 我要赶在世界末日前写完这篇博文,但愿我明天还起得来。。。。
上一篇鸟叔学习了Tile以及给他发送本地通知,今天我们来看看他的兄弟Toast通知,详情可参考MSDN Toast通知概述。
一、Toast通知是什么?
Toast通知就是屏幕右上角弹出来的一个小窗,我们可以使用它来做一些提醒,比如说受到新邮件呀、约会提醒呀 等等,但是不要乱发哦,不然你做的程序就等着被卸载的命运吧。
二、Toast能干什么?
我们先来看看代码(这段代码包括今天要探讨的所有Toast功能)稍后慢慢讲解
//使用String发送一个Toast通知 private void Button_Click_1(object sender, RoutedEventArgs e) { //使用string创建一个XML文档作为通知的模板 string toastStr = "<toast duration='long' launch='Page1'>"//通过给Toast节点添加一个duration属性来设置Toast通知的显示时间长(long)短(short) + "<visual version='1'>" + "<binding template='ToastText02'>" + "<text id='1'>Heading text</text>" + "<text id='2'>我来试一试</text>" + "</binding>" + "</visual>" + "<audio src='ms-winsoundevent:Notification.Mail' loop='true'/>"//可以在toast的节点下面设置声音节点,当声音设置循环的时候,duration必须设置为long,不播放声音的时候需要设置audio元素的属性silent=true + "</toast>"; XmlDocument toastXml = new XmlDocument(); toastXml.LoadXml(toastStr); ToastNotification toastNotification = new ToastNotification(toastXml); //在调试前必须先在程序清单中Package.appxmanifest文件中将支持Toast通知设置为'是' ToastNotificationManager.CreateToastNotifier().Show(toastNotification); }
Note:
1、在使用Toast通知前我们必须先在Package.manifest文件中将 支持Toast通知设置为是,不然调试的时候不能弹出Toast通知。
2、我们可以给Toast通知添加声音(好像默认也有),就是它弹出来的时候会有提示声音。
a、我们可以在Toast通知的XML架构文档的Toast元素节点下面添加一个audio节点<audio src='ms-winsoundevent:Notification.Mail' loop='true'/>,
b、src:是文件声音的类型,可以参考MSDN Toast通知音频选项
c、loop:是设置声音是否循环,如果要设置为true 则必须将Toast通知设置为长时间提醒,即给他添加duration属性并设置为long,duration='long'
3、我们还可以给Toast通知添加处理事件。
a、 如果我们给Toast通知添加了launch属性,并且给他赋值(这个值可以随便定义)了的话,当我们点击弹出额Toast的时候,他会触发App.xaml.cs文件下面的OnLaunched事件,如果没有赋值的话是不会触发的。 我们可以通过事件参数获得Toasted通知设置的参数值。
//处理Toast通知,必须给Toast通知设置了参数后,才会触发OnLaunch事件 if (args.Arguments == "Page1") rootFrame.Navigate(typeof(Page1));
总结:
其实今天的Toast通知本质还是和上一篇Tile通知是基本上相同的。所以学会了的话就一同百通,锁屏提醒和辅助磁贴实现也是这样子的。
不过Toast通知还可以合并,(比如说大家遇到这样一种情况,当多个程序的Toast通知,同时到达的时候,我们可以合并他们发出一个通知,而不是陆续弹出。等鸟叔学会了再和大家探讨,如果你已经知道的话,那你一定要告诉我。)
欢迎与鸟叔一起探讨学习,共同成长,鸟叔的微博 多了特