创建APP检查更新页
本文来源及参考:Create a check for updates page for your app。
这篇文章解释了如何创建一个简单的检查更新页,检查该用户已安装的应用程序的最新版本。
简介
这篇文章显示了如何创建用于您的应用程序的"检查更新"页。这会比较市场上当前可用的版本和应用程序的已安装的版本。如果有可用的更新版本,将会提示您,并跳转到应用市场上的应用程序。
安装系统必备组件
此示例的唯一前提是你需要先安装了优秀"Cimbalino Windows Phone 工具包"。这可以通过使用 nuget 或可以从这里下载.
设置的清单文件
有几件事情,你就需要在您的应用程序清单文件中设置。首先,您需要确保在清单中的产品 Id 相匹配的 (这可以在您的应用程序在Windows Phone Developer Dashboard portal上的详细信息选项卡找到) 发布的应用程序的应用程序 ID。你还需要确保您在每次更新应用程序更新中你清单的版本号。
检查有更新
检查您的应用程序的代码是相当直截了当。首先我们从使用 'ApplicationManifestService' 的清单文件获取当前已安装的应用程序的版本号。然后,我们使用 'MarketplaceInformationService' 在获取可用的版本市场上 (请注意,此项检查需要 internet 连接)。比较两个版本,然后提示用户是否是他们想要从市场上安装较新的版本。最后一步是使用"MarketplaceDetailTask"以向用户显示信息。
1: private async void CheckForUpdates()
2: {
3: var _informationService = new MarketplaceInformationService();
4: var _applicationManifestService = new ApplicationManifestService();
5:
6: var result = await _informationService.GetAppInformationAsync();
7: var appInfo = _applicationManifestService.GetApplicationManifest();
8: var currentVersion = new Version(appInfo.App.Version);
9: var updatedVersion = new Version(result.Entry.Version);
10:
11: if (updatedVersion > currentVersion && MessageBox.Show("Do you want to install the new version now?", "Update Available", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
12: {
13: new MarketplaceDetailTask().Show();
14: }
15: else
16: {
17: MessageBox.Show("Currently no updates available");
18: }
19: }
摘要
这简单的方法,以确保所有用户都运行您的App的最新版本,可以有助于改善当用户正在都运行您的应用程序的旧版本时的例如"应用崩溃了"这些评价。最后需要指出的一点是此示例中的代码使用单击按钮来运行,这段代码无法在应用程序启动时运行。您还可以下载本示例File:CheckForUpdatesSource.zip的源代码。
注:基本借助Bing翻译
创建APP检查更新页的更多相关文章
- 每日一博 | 用 Ionic2 创建 App 启动页滑动欢迎界面
原文 https://my.oschina.net/qinphil/blog/777787 效果如下,图片来自网络 本文例子和上图稍有不同,主要功能如下: 每滑动一下展示一张全屏图片: 滑动到最后一 ...
- Ionic2:创建App启动页滑动欢迎界面
来自:https://my.oschina.net/qinphil/blog/777787 著作权归原创作者所有,如有再转,请自觉标明原创出处,以示尊重! 摘要: 每个有逼格的App在第一次启动时都有 ...
- Cordova app 检查更新 ----创建项目、添加插件、修改插件(一)
原文:Cordova app 检查更新 ----创建项目.添加插件.修改插件(一) 使用Cordova 进行跨平台应用程序的开发 1.创建Cordova项目 $ cordova create hell ...
- iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ②)
距上一篇博客"APP引导页的高度集成 - DHGuidePageHUD - ①"的发布有一段时间了, 后来又在SDK中补充了一些新的内容进去但是一直没来得及跟大家分享, 今天来跟大 ...
- iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ①)
好长时间没更新博客, 是时候来一波干货分享了;APP引导页话不多说每一个APP都会用到,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了吧,当然这里讲的不是 ...
- [BS-10] 统一设置app所有页面的“返回”按钮样式
统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...
- GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
每一个APP都会用到APP引导页,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了,当然这里讲的不是APP引导页的美化而是APP引导页的高度集成,一行代码搞 ...
- iOS Storyboard创建APP 的国际化操作
Storyboard创建APP 的国际化操作 最近在看<X-code江湖录>这本书,看到了APP 国际化这点,刚刚也简单的实践了一下.现在和大家分享分享! 写的这个简单的Demo全都是用 ...
- App启动页倒计时功能
转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6753418.html 示例代码采用 RxJava + RxLifecycle + Data-Binding ...
随机推荐
- MySQL异常:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024). You ...
- CentOS7安装Nginx及其相关
一.安装所需环境 gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装. yum install gcc-c++ PCRE pcr ...
- request在作用域中管理属性
request在作用域中管理属性 制作人:全心全意 在作用域中管理属性 setAttribute(String name,Object object) name:表示变量名,为String类型,在转发 ...
- 微信小程序开发过程中tabbar页面显示的相关问题及解决办法!
在微信小程序的开发过程中如果有使用过tabbar的同学,我相信一定会遇到一些困扰.为什么有些时候代码中明明已经在app.json里面增加了tabbar,可以页面中就是不显示呢?可不可以有些页面显示ta ...
- LA 3029 Subsequence
LA 3029 A sequence of N positive integers (10 < N < 100 000), each of them less than or equal ...
- JUnit 深入
Fixture 何谓 Fixture ?它是指在执行一个或者多个测试方法时需要的一系列公共资源或者数据,例如测试环境,测试数据等等.在编写单元测试的过程中,您会发现在大部分的测试方法在进行真正的测试之 ...
- Spring 事务XML配置
<!-- 配置 Spring 的声明式事务 --> <!-- 1. 配置事务管理器 --> <bean id="transactionManager" ...
- JVM即时编译(JIT)
Java解释执行过程: 代码装入-代码校验-代码执行 Java字节码的执行方式分为两种:即使编译方式和解释执行方式.即时编译是值解释器先将字节码编译成机器码,然后执行该机器码.解释执行的方式是指解释器 ...
- jsp内置对象(转)
JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...
- [poj1678]I Love this Game!_博弈论
I Love this Game! 题目大意:题目链接 注释:略. 想法: 开始的时候以为没法dp,结果...:a>0啊! 所以可以直接dp了啊! 状态:dp[i]表示先手选了a[i]的状态. ...