当前位置:首页 > Windows程序 > 正文

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

2021-03-25 Windows程序

协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用。小小协议,学问大着呢。我打算写几篇关于协议在UWP中使用的文章。

这一讲的主要对象是Win10系统自带的应用商店应用所支持的相关启动协议ms-windows-store。

一. ms-windows-store协议的调用方式

ms-windows-store协议支持在Web或者UWP应用内调用,都能直接将系统自带的应用商店启动起来。

1.通过Web启动应用商店

大家可能注意到,平时我们在浏览器打开一个Win10应用的url链接时,系统自带的应用商店会被调起来,这里面的玄机就是使用了ms-windows-store协议!

比如下面这个UWP应用:https://www.microsoft.com/store/apps/9nblggh5x991

(顺便安利一下我最新的UWP应用——礼物说 - 最全美物收藏地)

用F12大法查看这个页面的源码,会发现以下这段代码

1 <iframe></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启动起来,并导航到具体的应用页面:

在Web中使用协议的方法非常简单,只需把ms-windows-store协议的Url类比成一个http协议来请求就可以了。

2.在UWP应用中启动应用商店

在UWP应用里,也可以将系统的应用商店启动起来。事实上,任何协议都可以试着使用如下API来调用:

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67254.html