【Win10 UWP】URI Scheme(一):Windows Store協議的解析和使用

協議是Windows Phone和Windows Store應用的一個重要特色,能夠作到在不一樣應用之間進行互相呼起調用。小小協議,學問大着呢。我打算寫幾篇關於協議在UWP中使用的文章。web

這一講的主要對象是Win10系統自帶的應用商店應用所支持的相關啓動協議ms-windows-store。windows

 

一. ms-windows-store協議的調用方式

ms-windows-store協議支持在Web或者UWP應用內調用,都能直接將系統自帶的應用商店啓動起來。瀏覽器

1.經過Web啓動應用商店

你們可能注意到,平時咱們在瀏覽器打開一個Win10應用的url連接時,系統自帶的應用商店會被調起來,這裏面的玄機就是使用了ms-windows-store協議!app

好比下面這個UWP應用:https://www.microsoft.com/store/apps/9nblggh5x991tcp

(順便安利一下我最新的UWP應用——禮物說 - 最全美物收藏地)ide

用F12大法查看這個頁面的源碼,會發現如下這段代碼url

 1 <iframe id="cli_redirectFrame" class="hidden"></iframe>
 2 <script>
 3     oneStoreRedirect(oneStoreUserAgent(), document)
 4        .autoRedirectToNativeStorePdp("cli_redirectFrame", {
 5              "threshold":"ms-windows-store://pdp/?productid=9NBLGGH5X991\u0026referrer=unistoreweb",  6              "win8x":"ms-windows-store:PDP?PFN=39014AppChampionStudio.-_ttcpf2hpawt8p\u0026referrer=unistoreweb",
 7              "phone81":"ms-windows-store:navigate?appid=ddc54195-22fd-43f3-ab67-964ca250bd6c\u0026referrer=unistoreweb",
 8              "phone807x":"zune://navigate/?appid=ddc54195-22fd-43f3-ab67-964ca250bd6c\u0026referrer=unistoreweb"
 9         }, '9NBLGGH5X991', false, '禮物說 - 最全美物收藏地', true, true, false, false);
10 </script>    

在頁面加載的時候會自動執行這段代碼,做用就是自動去調用ms-windows-store協議,嘗試把系統的應用商店App啓動起來,並導航到具體的應用頁面:spa

在Web中使用協議的方法很是簡單,只需把ms-windows-store協議的Url類比成一個http協議來請求就能夠了。3d

2.在UWP應用中啓動應用商店

在UWP應用裏,也能夠將系統的應用商店啓動起來。事實上,任何協議均可以試着使用以下API來調用:code

1 await Windows.System.Launcher.LaunchUriAsync(new Uri(InputUri));

 

事實上「ms-windows-store://」的做用至關於"http://",ms-windows-store就是一個自定義的URI Scheme,緊跟着的參數規則嚴格按照Uri格式進行。

固然UWP應用(實際上應用商店也是一個UWP應用)能夠在Package.appxmanifest的「聲明」中,聲明這個UWP支持某個自定義的協議(好比叫作myscheme),那麼只要在任何地方(Web、UWP App、iOS App、安卓App,甚至本身這個UWP)調用(myscheme://,注意帶有「//」),這個UWP均可以被啓動起來。從UWP的生命週期角度講,不該該叫「啓動(Launch)」起來,而應該是被「激活(Activated)」起來。App.cs能夠經過OnActivated方法接收到自定義協議裏帶着的Uri參數,從而自行進行解析並做頁面導航處理。這一部份內容咱們留到下一篇具體展開。

 

二. ms-windows-store協議的高端用法

咱們這講的主題是應用商店的協議,前面講了不少光是啓動商店進入一個應用的詳情遠遠不能知足咱們平時的開發需求,你可能還須要求好評功能。

MSDN文檔對ms-windows-store做了很是詳細的介紹,連接:https://msdn.microsoft.com/en-us/library/windows/apps/mt228343.aspx

描述 重要參數 URI Scheme
啓動到商店首頁  

ms-windows-store://home

ms-windows-store://                 <--- 若是在UWP應用內能夠只寫這個

啓動到商店的分類

(並不是全部用戶都能看到全部類別,目前類別有應用、遊戲、音樂、視頻)

路徑navigatetopage

 

ms-windows-store://navigatetopage/?Id=Apps

ms-windows-store://navigatetopage/?Id=Games

ms-windows-store://navigatetopage/?Id=Music

ms-windows-store://navigatetopage/?Id=Video

啓動到某個應用詳情

路徑pdp (product detail page)

ProductId,ProductId,ProductId

(重要的參數說三遍,UWP最推薦的方式)

ms-windows-store://pdp/?ProductId=9NBLGGH5X991
PFN(Pacakge Family Name) ms-windows-store://pdp/?PFN= Microsoft.Office.OneNote_8wekyb3d8bbwe
PhoneAppId (Windows Phone 7.x/8.x) ms-windows-store://pdp/?PhoneAppId=ca05b3ab-f157-450c-8c49-a1f127f5e71d
AppId (Windows 8.x) ms-windows-store://pdp/?AppId=f022389f-f3a6-417e-ad23-704fbdf57117

啓動到某個應用編寫評論

路徑review、reviewapp(Windows Phone 7.x/8.x)

ProductId,ProductId,ProductId

(重要的參數說三遍,UWP最推薦的方式)

ms-windows-store://review/?ProductId=9NBLGGH5X991
PFN ms-windows-store://review/?PFN= Microsoft.Office.OneNote_8wekyb3d8bbwe
AppId (Windows Phone 7.x/8.x) ms-windows-store://reviewapp/?AppId=ca05b3ab-f157-450c-8c49-a1f127f5e71d
AppId (Windows 8.x) ms-windows-store://review/?AppId=f022389f-f3a6-417e-ad23-704fbdf57117

啓動關聯搜索

路徑assoc

FileExt(與文件擴展名關聯的產品) ms-windows-store://assoc/?FileExt=pdf

 

 

Protocol (與協議關聯的產品) ms-windows-store://assoc/?Protocol=liwushuo

 

 

Tags (與標記關聯的產品) ms-windows-store://assoc/?Tags=Photos_Rich_Media_Edit, Camera_Capture_App

啓動搜索

路徑search

  ms-windows-store://search/?query=OneNote

啓動類別中的產品搜索

路徑browse

 

ms-windows-store://browse/?type=Apps&cat=Productivity

ms-windows-store://browse/?type=Apps&cat=Health+%26+fitness

啓動某發佈者發佈的產品搜索(名稱中容許空格)

路徑publisher

 

ms-windows-store://publisher/?name=AppChampion Studio

啓動下載和更新頁面

 

ms-windows-store://downloadsandupdates

啓動商店設置頁面

 

ms-windows-store://settings

 以上ms-windows-store協議的規則適用於Win10 UWP應用,部分規則WP或Win8.x並不適用。

 

小結

本講的主題是Win10自帶的應用商店相關協議的規則,並介紹了URI Scheme的基本原理。下一講咱們講UWP裏使用URI Scheme的具體用法,解析響應以及適用場合。

相關文章
相關標籤/搜索