天天看點

簡單說一下UWP中的JumpList 注意:該特性目前隻能在10586及其以上版本的PC上使用!

原文: 簡單說一下UWP中的JumpList

  在Windows10的10856這個版本中,微軟為桌面版提供了一組新的應用互動方式,磁貼和Toast通知的個性化都有了一定的改善。針對磁貼方面,微軟為我們提供了一組新的API來擴充我們對應用的互動方式——JumpList。但是卻很少看見商店的UWP的應用使用到這個特性,暫時隻發現了清新範的的禮物說和微軟自家的視訊(本人基本不用)應用使用了這個新的互動方式,真應該給開發者一個大大的贊!

  這種新的應用互動方式通過代碼實作起來并不是很難,完全按照微軟的MSDN上提供的相關文檔就可以很快完成。但是現有的UWP應用中卻很鮮見,不知道為什麼?先看一下禮物說的是如何設計的吧!

簡單說一下UWP中的JumpList 注意:該特性目前隻能在10586及其以上版本的PC上使用!

個人感覺還是很漂亮的,由于不是很難,就簡單說一下如何使用這個東西吧。

首先是判斷目前的系統是否支援改特性,通過使用JumpList.IsSupported() 傳回一個bool值來判斷,如果支援的話會傳回True;

其次就是通過JumpList.LoadCurrentAsync()來擷取應用的JumpList對象;

然後通過對應的Add方法來向JumpList添加Item;

最後,如果使用者點選了哪個Item,會觸發App類中的OnLaunched(LaunchActivatedEventArgs e)方法,通過該參數e.Arguments來擷取傳遞來的參數進而執行相應的邏輯操作。

前三步的示例代碼如下所示:

簡單說一下UWP中的JumpList 注意:該特性目前隻能在10586及其以上版本的PC上使用!
簡單說一下UWP中的JumpList 注意:該特性目前隻能在10586及其以上版本的PC上使用!

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

下面是對應的效果圖:

簡單說一下UWP中的JumpList 注意:該特性目前隻能在10586及其以上版本的PC上使用!

  就這麼幾句代碼很快就可以實作這種新的應用互動方式,是不是很簡單呀!!!!下面貼一張圖告訴你當使用者點選了對應的Item時資料傳遞到哪裡了!

簡單說一下UWP中的JumpList 注意:該特性目前隻能在10586及其以上版本的PC上使用!

紅線框出的部分就是傳遞來的參數,是不是秒懂了!!!我并沒有詳細介紹相關API的參數是幹什麼的,

MSDN文檔

的描述要比我描述的清晰多了。感興趣的可以自己去看看。

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

繼續閱讀