原文链接:http://www.cnblogs.com/zhxilin/p/4819372.html

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

ms-windows-store协议支持在Web或者UWP应用内调用,都能直接将系统自带的应用商店启动起来。https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/launch-store-app

1.通过Web启动应用商店

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

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

用F12大法查看这个页面的源码(搜索ms-windows-store),会发现以下这段代码:

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

在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

(重要的参数说三遍,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并不适用。

三、在UWP的安装文件中寻找蛛丝马迹

你不妨先看一下上面这篇文章,看能不能得到你需要的,如果能,也请你看一下下面这篇文章。希望能为你打开另外一个世界。

拿网易云音乐UWP来说,首先安装“网易云音乐UWP”,去找到你的Windows store默认安装目录——C:\Program Files\WindowsApps(如果你没修改过)。第一次访问这个文件,系统不会让你访问。修改一下安全属性。右键“属性”——“安全”选项卡——“高级设置”——“更改所有者设置”,增加安全访问用户。

然后你就可以进入该文件,按安装时间排列一下,你就可以看到安装文件。如下图:

一个贪吃蛇的游戏UWP:10437webabcd.173815756DD78_1.0.0.19_neutral__s2b9shdpk31kj ——》  去掉_1.0.0.19_neutral__,你知道这是什么吗?

网易云音乐UWP:1F8B0F94.122165AE053F_1.1.0.0_neutral_~_j2p0p5q0044a6——》  去掉_1.0.0.19_neutral__,你知道这是什么吗?

还是去看一下这篇文章吧:http://blog.csdn.net/songshimvp1/article/details/51133963

按照上文的方法,去做,这次我们找PFN而不是productid。

看下图(网易云音乐UWP的网页源码):

对比一下,希望我说的你已经明白了!我其实就是想说 ,我们在Windows store的APP安装文件中找到了软件的PFN!

如果您不信,在你的UWP程序中执行一下下面这句:

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. await Windows.System.Launcher.LaunchUriAsync(new Uri(@"ms-windows-store:PDP?PFN=1F8B0F94.122165AE053F_j2p0p5q0044a6"));

和这一句:

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. await Windows.System.Launcher.LaunchUriAsync(new Uri(@"ms-windows-store:PDP?PFN=10437webabcd.173815756DD78_s2b9shdpk31kj"));

Windows Store协议(ms-windows-store)解析和使用相关推荐

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

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

  2. Windows下使用DCMTK开源库对DICOM协议的医学图像进行解析与显示

    DICOM(Digital Imaging and Communications in Medicine),是用于医学影像处理.储存.打印.传输的一组通用标准协定.目前,被广泛应用于放射医疗,心血管成 ...

  3. windows wss协议_Windows SharePoint Services(WSS)和SharePoint Server(MOSS)之间有什么区别...

    windows wss协议 Windows SharePoint Services和Microsoft Office SharePoint Server简介 (An Introduction to W ...

  4. App Store协议刷评论软件源代码

    App Store协议刷评论 iOS 11 纯协议,C++编写,Windows上就可以跑,不需要iPhone辅助,开启多个线程.每小时可以刷6万条. 联系电话:15001345 547 QQ:9292 ...

  5. Windows登录类型及安全日志解析

    Windows登录类型及安全日志解析 一.Windows登录类型 如果你留意Windows系统的安全日志,在那些事件描述中你将会发现里面的"登录类型"并非全部相同,难道除了在键盘上 ...

  6. Windows操作系统上的一些名字解析

    介绍 当您打开计算机开始访问网络资源时,就涉及到一个问题:名字解析,名字解析就是把需要访问的计算机名字解析成 IP 地址的过程.为什么需要有这个过程呢?原因是 TCP/IP 网络上的计算机之间是通过 ...

  7. win10到2008服务器smb协议,如何启用或禁用SMB1文件共享协议在Windows

    历史: SMB协议 SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议.SM ...

  8. MS Windows 7 快捷键大全

    MS Windows 7 快捷键大全,来自微软官方[1],共大家参考.这些内容由 sfufoet 网友提议翻译,感谢飞天fainy.yanqian 的翻译,感谢 EraserKing 贴出了全部内容- ...

  9. [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控

    [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控 基于RTSP协议的windows平台监控. 1.  基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RT ...

最新文章

  1. 阿里云、Amazon、Google云数据库方案架构与技术分析
  2. 操蛋的linux改mysql密码(1054和1819错误)
  3. 第二个一千行总结-数据结构C复习--知识点总结2--五到七章
  4. enter power save mode解决
  5. c# Brush、Color、String相互转换
  6. mapper 判断条件为null
  7. php iso 8859 1 解码,关于php:Apache的默认编码是ISO-8859-1,但网站是UTF-8?
  8. ThreadLocal工作原理和内存泄漏的预防
  9. linux 文件预读,一种基于Linux系统小文件预读功能的可靠性测试方法与流程
  10. 独特的 Erlang -- Eralng 学习笔记 (1)
  11. 数据库入门级学习(1)
  12. Free MyBatis plugin下载安装及作用
  13. dell h330 不要做raid5 ,做raid0就可以了
  14. c# wpf 利用截屏键实现截屏功能
  15. gmail 邮件客户端设置
  16. RHEL7.3 DNS配置
  17. 【Bug 调试】修复注册验证问题 第十三届蓝桥杯(Web 应用开发)线上模拟赛
  18. 手机无法与电脑360助手连接到服务器失败,360手机助手怎么连接不上手机怎么办...
  19. Benchmark初印象
  20. 天龙八部网单服务器修改爆率,天龙八部网游单服务器修改资料.doc

热门文章

  1. C#封闭方法和封闭类:sealed
  2. PageHelper的使用
  3. NOKIA手机共有的缺陷
  4. 计算机暑期学校心得,暑期学校学习心得体会
  5. 开公司需要了解的相关法律
  6. tuned-adm性能优化
  7. 零基础入门学习Python(23)--递归:这帮小兔崽子
  8. Laravel实现google-authenticator--Google二维码验证器
  9. 360搜索的域名已经确定为so.com
  10. Java Maven项目文件红叉叉(The compiler compliance specified is 1.6 but a JRE 1.8 is used) java编译报错