在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文檔的描述要比我描述的清晰多了。感興趣的可以自己去看看。