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. 呼叫电 ...
随机推荐
- afnetworking报错pointer being freed was not allocated
报错内容 YangTao(57008,0x7000002a0000) malloc: *** error for object 0x6180000d6490: pointer being freed ...
- EF外键关联
客户里面存在客服外键 基类模型 public class ModelBase { public ModelBase() { CreateTime = DateTime.Now; } [Key] pub ...
- OC对象的归档及解档浅析
一般用在用户登录,保存这个用户的信息 对象归档,就是把内存中对象持久化. 对象解档,就是把持久化的对象读取到内存. oc中对象归档解档大致分为以下几种方法: 从数量上可以分为: 对单个对象归档解档 对 ...
- .Net Mail SMTP 发送网络邮件
刚刚迈入"开发"的行列 一直有一个想法 我什么时候能给我庞大的用户信息数据库给每一位用户邮箱发送推荐信息呢? 刚迈入"编程两个月的时间" 我采用 SMTP 发送 ...
- IOS低版本遇到了坑不知道你遇到了没
拿着项目给客户测试,客户那边三个人俩人水果手机是ios8以下版本,结果导致```(恭喜,坑出现!)总不能说老总!"您把版本升级到ios9 吧!
- BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元
BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy Init函数 然后统计就ok B. 博弈 题 不懂 推了半天的SG..... 结果这 ...
- poj1087 A Plug for UNIX(网络流最大流)
http://poj.org/problem?id=1087 好久没遇见过这么坑的题了这个题真是挫的够可以的.题目大意:你作为某高管去住宿了,然后宾馆里有几种插座,分别有其对应型号,你携带了几种用电器 ...
- swoole 使用 1
在很长的一段时间里,我不太看好swoole,发现它的文档太少,社区也不够活跃等,但是最近在学习 Hprose时,发现swoole在rpc方面做得更加完善,于是决定看看. 在简单的使用swoole扩展后 ...
- 第五章 springboot + mybatis(转载)
本编博客转发自:http://www.cnblogs.com/java-zhao/p/5350021.html springboot集成了springJDBC与JPA,但是没有集成mybatis,所以 ...
- Fuzzy Probability Theory---(2)Computing Fuzzy Probabilities
Let $X=\{x_1,x_2,...,x_n\}$ be a finite set and let $P$ be a probability function defined on all sub ...