zoukankan      html  css  js  c++  java
  • 简单说一下UWP中的JumpList

      在Windows10的10856这个版本中,微软为桌面版提供了一组新的应用交互方式,磁贴和Toast通知的个性化都有了一定的改善。针对磁贴方面,微软为我们提供了一组新的API来扩充我们对应用的交互方式——JumpList。但是却很少看见商店的UWP的应用使用到这个特性,暂时只发现了清新范的的礼物说和微软自家的视频(本人基本不用)应用使用了这个新的交互方式,真应该给开发者一个大大的赞!

      这种新的应用交互方式通过代码实现起来并不是很难,完全按照微软的MSDN上提供的相关文档就可以很快完成。但是现有的UWP应用中却很鲜见,不知道为什么?先看一下礼物说的是如何设计的吧!

    个人感觉还是很漂亮的,由于不是很难,就简单说一下如何使用这个东西吧。

    首先是判断当前的系统是否支持改特性,通过使用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文档的描述要比我描述的清晰多了。感兴趣的可以自己去看看。

     注意:该特性目前只能在10586及其以上版本的PC上使用!

  • 相关阅读:
    hdu 5387 Clock (模拟)
    CodeForces 300B Coach (并查集)
    hdu 3342 Legal or Not(拓扑排序)
    hdu 3853 LOOPS(概率DP)
    hdu 3076 ssworld VS DDD(概率dp)
    csu 1120 病毒(LICS 最长公共上升子序列)
    csu 1110 RMQ with Shifts (线段树单点更新)
    poj 1458 Common Subsequence(最大公共子序列)
    poj 2456 Aggressive cows (二分)
    HDU 1869 六度分离(floyd)
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/5325871.html
Copyright © 2011-2022 走看看