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新特性 - 应用商店启动协议,布布扣,bubuko.com

时间: 2024-08-09 02:20:00

Windows Phone 8.1新特性 - 应用商店启动协议的相关文章

Windows Phone8.1系统新特性

Windows Phone 8.1 beta SDK已经为大家透露了不少WP8.1系统的新特性,不过这些新特性还不能保证在最终的消费者版本中都有所体现,毕竟它还仅是SDK版本.日前,国外媒体WPCentral总结了一份WP8.1系统目前曝光的一些新特性. 活动中心 • 通知中心—提醒,通知,更新记录,以及更多 • 快捷控制中心—自定义操作,包括Wi-Fi,蓝牙,飞行模式等 应用+商店 • 应用可以捕获音视频文件,但是版权有所限制.       • 应用和游戏数据可以存储到SD上 • SD卡上的应

Windows Phone 8.1 新特性 - 常用的启动器

本篇为大家介绍一下 Windows Phone 8.1 中部分常用启动器的实现方式.分别是 呼叫电话.发送短信.发送邮件.添加约会到日历.启动地图.地图路线显示.地图下载 和 地图更新. 1. 呼叫电话 我们使用 PhoneCallManager 的 ShowPhoneCallUI 方法来实现呼叫电话.该方法的两个参数分别是 电话号码 和 显示名称. Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI("10086&qu

Windows Phone 8.1 新特性 - 控件之FlipView

本篇为大家介绍 Windows Phone 8.1 中新增的 FlipView 控件,它的中文名字叫做:翻转视图. 虽然听起来有点拗口,但是它的用途大家一定不会陌生.在 Windows Phone 8 中,我们经常会为应用首次启动时加一个引导页,几张引导图片滑动来显示,最后点击确定进入应用.我们会为它写一个控件来实现,而FlipView 可以轻松的完成这一功能.FlipView不止可以作为图片浏览控件,同时还可以作为文本切换,步骤切换等等.下面我们先来看一个简单的例子: <FlipView>

Windows Phone 8.1 新特性 - 控件之列表选择控件

本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显示.比如通讯录中,按照名字首字母进行分组,点击分组标题后跳转到该标题对应的分组. 而Windows Phone 8.1 中会利用 ListView 和 SemanticZoom 来实现,下面我们来看看实现过程. 首先我们来认识一下ListView 和 SemanticZoom: ListView 从

Windows Phone 8.1商店启动协议

最近开发wp8.1已经两个月了,感觉坑不少,原来8时代的商店api多明了,微软不给封装就算了,至少你要在msdn上明显的地方标注下啊...................顺便在吐槽下bing,找了一个下午没找到有用的资料,最起码你也整合一下 微软生态的资料啊.................. 前面纯属吐槽可以略过................. 下面正题,其实就是第三方启动协议,只是我们不知道启动协议的标准罢了.................... var uri = new Uri(st

Kinect for Windows SDK 2.0新特性

这些新特性包括, 1,改善的骨骼,手,关节方位------具有跟踪6个人全骨骼,每个人25个关节点(新增加手的中指指尖,拇指和shoulder center)的能力,以及对软组织连接和身体定位的改善. 2,支持新的开发环境------支持更快,高效,高品质的跨平台开发,让开发者使用已知的工具在Windows store 开发产品. 3,powerful tooling-----有了记录和playback 功能,让开发者可以摆脱必须有Kinect sensor的束缚. 4,进阶的脸部跟踪功能---

微软架构师解读Windows Server 2008 R2新特性

目前众多企业都开始为自己寻找一个更加适合自身发展的服务器操作平台.微软的Windows Server 2008 R2就是可以为大家解决服务器平台问题.微软最新的服务器平台Windows Server 2008 R2已经发布了有一段时间,相比Windows Server 08,R2并不仅仅是版本号的升级,其中引入了很多新的令人激动的特性,如Hyper-v 2.0.IIS 7.5.活动目录回收站.增强的PowerShell等等. 那么,R2可以为企业带来哪些的好处,这些新的特性,是否能吸引企业升级I

Windows Phone 8.1 新特性 - 控件之应用程序栏

2014年4月3日的微软Build 2014 大会上,Windows Phone 8.1 正式发布.相较于Windows Phone 8,不论从用户还是开发者的角度,都产生了很大的变化.接下来我们会用几篇文章来了解一下这些变化给开发者带来的影响,以及我们如何更好的利用WP8.1 的新特性. WP8.1 最大的变化就是与Windows Store App 的结合,我们把它们统称为Windows RunTime apps.WP8.1 中的控件位于Windows.UI.XAML.Controls 命名

atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结

atitit.Windows Server 2003  2008  2012系统的新特性 attilax 总结 1. Windows Server 2008 新特性也可以归纳为4个方面. 1 2. 相比Windows Server 08,R2 2 3. win 2012  新特性 2 4. 参考 6 1. Windows Server 2008 新特性也可以归纳为4个方面. 即将发布的Windows Server 2008是企业级的应用平台,可以为CRM等企业级应用提供更好更强的支撑,其新特性也