Windows Phone 8.1新特性 - 应用商店启动协议
Windows Phone 8.1 Preview SDK 发布也有几个月了,之前断断续续也写过几篇 Windows Phone 8.1 新特性的文章,今天给大家介绍一下应用商店启动协议相关的知识。
关于这方面,想必大家心里都有很多疑问,为什么 Windows Phone 8.0 时代的 MarketplaceDetailTask、MarketplaceReviewTask 和 MarketplaceSearchTask 都不见了呢?这种问题在MSDN、stackoverflow等网站上都很多次的出现,我也在这些网站多次回答了类似这样的问题。
是的,确实不见了,SDK不再给我们提供这方面的类,而是需要通过启动协议来实现:Windows.System.Launcher.LaunchUriAsync(Uri uri)。
博客园里也有同学的博客介绍了这个方法的具体实现方式:Windows Phone 8.1商店启动协议,这里我再做一些补充,然后把这几个协议进行一下类似 Windows Phone 8.0 时代的封装。
1. 显示指定产品的详细信息页面(MarketplaceDetailTask)
启动协议:var uri = new Uri(string.Format("ms-windows-store:navigate?appid={0}", appid));
这里的appid可以指定为CurrentApp.AppId,就是跳转到当前应用详细页面;也可以指定为特定的AppId,就是跳转到特定的应用详细页,这种情况在做推荐应用的时候便会用到。
我们对它进行这样的封装:
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Store; namespace Windows.ApplicationModel.Tasks
{
public sealed class MarketplaceDetailTask
{
public MarketplaceDetailTask()
{ } /// <summary>
/// 获取或设置要显示的产品的唯一标识符。
/// </summary>
public string ContentIdentifier { get; set; } /// <summary>
/// 显示 Windows Phone 商城 客户端应用程序并显示指定产品的详细信息页面。
/// </summary>
public async void Show()
{
await Windows.System.Launcher.LaunchUriAsync(
new Uri(string.Format("ms-windows-store:navigate?appid={0}",
string.IsNullOrEmpty(ContentIdentifier) ?
CurrentApp.AppId.ToString() :
ContentIdentifier)));
}
}
}
调用方法:
// 默认启动当前应用详细页面
MarketplaceDetailTask task1 = new MarketplaceDetailTask();
task1.Show(); // 启动特定应用详细页面
MarketplaceDetailTask task2 = new MarketplaceDetailTask();
task2.ContentIdentifier = "some app id";
task2.Show();
2. 显示指定产品的评论页面(MarketplaceReviewTask)
启动协议:var uri = new Uri(string.Format("ms-windows-store:reviewapp?appid={0}", appid));
这里的appid我们设定为当前应用的ID,因为在应用中评论别的应用是不合理的。
我们对它进行这样的封装:
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Store; namespace Windows.ApplicationModel.Tasks
{
public sealed class MarketplaceReviewTask
{
public MarketplaceReviewTask()
{ } public async void Show()
{
await Windows.System.Launcher.LaunchUriAsync(
new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));
}
}
}
调用方法:
MarketplaceReviewTask task = new MarketplaceReviewTask();
task.Show();
3. 显示产品搜索页面(MarketplaceSearchTask)
启动协议:var uri = new Uri(string.Format(@"ms-windows-store:search?keyword={0}",keyword));
这里的keyword就是我们要搜索的关键字,有时候我们需要搜索我们的开发者账号对应的所有应用,这时候可以把keyword设置为开发者名称。但是如果你的开发者名称与很多产品相似,比如名称为:微博,这时候搜索的结果就包括了微博应用,而不只是你的“微博”开发者名下的应用(好吧,有点绕嘴了)。这时候我们可以把keyword搜索改成publisher搜索。
基于keyword和publisher两种搜索方式,我们进行这样的封装:
using System.Threading.Tasks;
using Windows.ApplicationModel.Store; namespace Windows.ApplicationModel.Tasks
{
public sealed class MarketplaceSearchTask
{
public MarketplaceSearchTask(SearchTermsType type)
{
this.Type = type;
} public string SearchTerms { get; set; } public SearchTermsType Type { get; set; } public async void Show()
{
await Windows.System.Launcher.LaunchUriAsync(
new Uri(string.Format("ms-windows-store:search?{0}={1}", this.Type.ToString() ,SearchTerms)));
}
} public enum SearchTermsType
{
Keyword,
Publisher
}
}
调用方法:
// 搜索'shaomeng'开发者名下的所有应用
MarketplaceSearchTask task1 = new MarketplaceSearchTask(SearchTermsType.Publisher);
task1.SearchTerms = "shaomeng";
task1.Show(); // 搜索含有关键字'微博'的所有应用
MarketplaceSearchTask task2 = new MarketplaceSearchTask(SearchTermsType.Keyword);
task2.SearchTerms = "微博";
task2.Show();
好了,到这里我们就把常用的应用商店启动协议介绍完了。希望能够帮助到大家。Windows Phone 8.1 的“坑”还有很多,如果大家有其他找不到的启动协议,请留下评论,我会持续去更新,谢谢。
Windows Phone 8.1新特性 - 应用商店启动协议的更多相关文章
- Windows Phone 8.1 新特性 - 控件之列表选择控件
本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显 ...
- Windows Phone8.1系统新特性
Windows Phone 8.1 beta SDK已经为大家透露了不少WP8.1系统的新特性,不过这些新特性还不能保证在最终的消费者版本中都有所体现,毕竟它还仅是SDK版本.日前,国外媒体WPCen ...
- 微软架构师解读Windows Server 2008 R2新特性
目前众多企业都开始为自己寻找一个更加适合自身发展的服务器操作平台.微软的Windows Server 2008 R2就是可以为大家解决服务器平台问题.微软最新的服务器平台Windows Server ...
- Windows Phone 8.1 新特性 - 控件之应用程序栏
2014年4月3日的微软Build 2014 大会上,Windows Phone 8.1 正式发布.相较于Windows Phone 8,不论从用户还是开发者的角度,都产生了很大的变化.接下来我们会用 ...
- Windows Phone 8.1SDK新特性预览
前言 Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装.本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的 ...
- Windows Embedded Compact 7新特性
Windows® Embedded Compact 7是Windows Embedded CE的下一代产品,而Windows Embedded CE这款操作系统面向占用资源少的新颖设备.Windows ...
- Windows Phone 8.1商店启动协议
最近开发wp8.1已经两个月了,感觉坑不少,原来8时代的商店api多明了,微软不给封装就算了,至少你要在msdn上明显的地方标注下啊...................顺便在吐槽下bing,找了一个 ...
- windows phone 8的新特性
<1>硬件的升级WP8在硬件上有了极大的提升,处理器支持双核或多核 理论最大支持64核,分辨率支持800x480.1280x720/768,屏幕支持720p或WXGA:支持存储卡扩展.同时 ...
- Windows Phone 8.1 新特性 - 常用的启动器
本篇为大家介绍一下 Windows Phone 8.1 中部分常用启动器的实现方式.分别是 呼叫电话.发送短信.发送邮件.添加约会到日历.启动地图.地图路线显示.地图下载 和 地图更新. 1. 呼叫电 ...
随机推荐
- [原创.数据可视化系列之五]韩国"萨德"系统防御图
自从7月8日美国和韩国共同宣布将在韩国部署萨德反导系统后,韩国国内对此事的巨大争议以及本地区一些国家的强烈不满情绪在持续发酵.“萨德”(THAAD)全称“末段高空区域防御系统”,是美国导弹防御局和美国 ...
- 安装oracle ebs 出现问题 atleast 55M of disk space
出现这个问题 可以进行如下尝试: 1.登陆用户是否具有管理员权限,可以右击exe用管理员登陆. 2.安装电脑是否有安装mcafee,可以禁用后运行. 3.看下C:\Documents and Sett ...
- MySql索引简介
从"找"到B+树 索引是用来查找的. 折半查找是一种很优秀的方式.适合于 范围查找,固有缺点就是需要元素是有序的.二叉搜索树就是对折半查找的一种基础的实现. 但二叉搜索树当遇到特殊 ...
- linux 定时执行php脚本
第一种方法: 1.编写shell脚本: shell文件:/home/www/shell/phpshell.php #!/bin/bash while [ true ]; do /bin/sleep 1 ...
- linux 正则表达式与文件格式化处理
此文涉及命令:grep.sed.awk.printf.diff.cmp.patch. 概念: 什么是正则表示法 简单的说,正则表示法就是处理字符串的方法,他是以行为单位来进行字符串的处理行为, 正则表 ...
- hdu 1398 Square Coins (母函数)
Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- Jquery当中当data为json串时,eval('(' +data+ ')')的解释
var dataObj = eval('(' +data+ ')') data是返回来的json. dataObj就是json对象了. 为什么要添加 '(' 与 ')' 作为开始于结尾呢? json是 ...
- ZT 螨虫知识2
病情分析:过敏是治不好的,只能做到避免接触.指导意见:螨虫的话就不要跟狗多接触,狗的寄生虫很多,还有草地,尤其是狗经常去的地方,草地就是螨虫的传播介质.你是过敏性体质除了被免过敏性源外,还要增强体质, ...
- vim符号列表窗口
有时使用vim开发时,需要能够直观的查看文件的符号列表或者变量list,但是vim不直接支持这个功能,需要使用ctags的插件支持. 以下是在ubuntu下的详细设置方法: 步骤1:安装ctags u ...
- BPTT算法推导
随时间反向传播 (BackPropagation Through Time,BPTT) 符号注解: \(K\):词汇表的大小 \(T\):句子的长度 \(H\):隐藏层单元数 \(E_t\):第t个时 ...