在Windows10的10856这个版本中,微软为桌面版提供了一组新的应用交互方式,磁贴和Toast通知的个性化都有了一定的改善。针对磁贴方面,微软为我们提供了一组新的API来扩充我们对应用的交互方式——JumpList。但是却很少看见商店的UWP的应用使用到这个特性,暂时只发现了清新范的的礼物说和微软自家的视频(本人基本不用)应用使用了这个新的交互方式,真应该给开发者一个大大的赞!
这种新的应用交互方式通过代码实现起来并不是很难,完全按照微软的MSDN上提供的相关文档就可以很快完成。但是现有的UWP应用中却很鲜见,不知道为什么?先看一下礼物说的是如何设计的吧!
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuE2N5EjZwEmY1EmYhdjN3kDOkJGZyAjMxIWMjRGOzATYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
个人感觉还是很漂亮的,由于不是很难,就简单说一下如何使用这个东西吧。
首先是判断当前的系统是否支持改特性,通过使用JumpList.IsSupported() 返回一个bool值来判断,如果支持的话会返回True;
其次就是通过JumpList.LoadCurrentAsync()来获取应用的JumpList对象;
然后通过对应的Add方法来向JumpList添加Item;
最后,如果用户点击了哪个Item,会触发App类中的OnLaunched(LaunchActivatedEventArgs e)方法,通过该参数e.Arguments来获取传递来的参数从而执行相应的逻辑操作。
前三步的示例代码如下所示:
1 private async void MainPage_Loaded(object sender, RoutedEventArgs e)
2 {
3 if (JumpList.IsSupported())
4 {
5 var list = await JumpList.LoadCurrentAsync();
6 list.Items.Clear();//建议每次在添加之前清除掉原先已经存在的数据
7 list.Items.Add(JumpListItem.CreateSeparator());
8
9 new List<JumpListItem>()
10 {
11 CreateJumpListItem("facebook","Facebook","Share",new Uri("ms-appx:///Assets/facebook.png")),
12 CreateJumpListItem("github","Github","Share",new Uri("ms-appx:///Assets/github.png")),
13 CreateJumpListItem("google","Google","Share",new Uri("ms-appx:///Assets/google.png")),
14 CreateJumpListItem("linked-in","Linked-in","Share",new Uri("ms-appx:///Assets/linked-in.png"))
15 }.ForEach((item) =>
16 {
17 list.Items.Add(item);
18 });
19 await list.SaveAsync();
20 }
21 }
22 private JumpListItem CreateJumpListItem(string arguments, string displayName, string groupName, Uri uri)
23 {
24 JumpListItem item = JumpListItem.CreateWithArguments(arguments, displayName);
25 item.GroupName = groupName;
26 item.Logo = uri;
27 return item;
28 }
View Code
下面是对应的效果图:
就这么几句代码很快就可以实现这种新的应用交互方式,是不是很简单呀!!!!下面贴一张图告诉你当用户点击了对应的Item时数据传递到哪里了!
红线框出的部分就是传递来的参数,是不是秒懂了!!!我并没有详细介绍相关API的参数是干什么的,
MSDN文档的描述要比我描述的清晰多了。感兴趣的可以自己去看看。