本文来源及参考: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检查更新页的更多相关文章

  1. 每日一博 | 用 Ionic2 创建 App 启动页滑动欢迎界面

    原文  https://my.oschina.net/qinphil/blog/777787 效果如下,图片来自网络 本文例子和上图稍有不同,主要功能如下: 每滑动一下展示一张全屏图片: 滑动到最后一 ...

  2. Ionic2:创建App启动页滑动欢迎界面

    来自:https://my.oschina.net/qinphil/blog/777787 著作权归原创作者所有,如有再转,请自觉标明原创出处,以示尊重! 摘要: 每个有逼格的App在第一次启动时都有 ...

  3. Cordova app 检查更新 ----创建项目、添加插件、修改插件(一)

    原文:Cordova app 检查更新 ----创建项目.添加插件.修改插件(一) 使用Cordova 进行跨平台应用程序的开发 1.创建Cordova项目 $ cordova create hell ...

  4. iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ②)

    距上一篇博客"APP引导页的高度集成 - DHGuidePageHUD - ①"的发布有一段时间了, 后来又在SDK中补充了一些新的内容进去但是一直没来得及跟大家分享, 今天来跟大 ...

  5. iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ①)

    好长时间没更新博客, 是时候来一波干货分享了;APP引导页话不多说每一个APP都会用到,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了吧,当然这里讲的不是 ...

  6. [BS-10] 统一设置app所有页面的“返回”按钮样式

    统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...

  7. GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)

    每一个APP都会用到APP引导页,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了,当然这里讲的不是APP引导页的美化而是APP引导页的高度集成,一行代码搞 ...

  8. iOS Storyboard创建APP 的国际化操作

    Storyboard创建APP 的国际化操作 最近在看<X-code江湖录>这本书,看到了APP 国际化这点,刚刚也简单的实践了一下.现在和大家分享分享! 写的这个简单的Demo全都是用 ...

  9. App启动页倒计时功能

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6753418.html 示例代码采用 RxJava + RxLifecycle + Data-Binding ...

随机推荐

  1. php部分基础

    变量使用$,如$num = 1; 或 $name = 'hey'; 创建数组:$arr = array('a','b','c'); 或 $arr = array('a' => $name); 取 ...

  2. Intellij idea 生成for循环代码块

    itar 生成array for代码块 for (int i = 0; i < array.length; i++) { = array[i]; } itco 生成Collection迭代 fo ...

  3. 【tips】自动化测试工具 - selenium和phantomJS

    ### 目录清单 selenium和phantomjs概述 selenium常用API 案例操作:模拟登陆csdn 1. selenium和phantomJS是什么东西 selenium是一套web网 ...

  4. average column data from multiple files

    example in file a, data is [1 , 2, 3; 4,5,6] file b, data is  [4,5, 6; 7,8,9] average=0.5 (a+b) matl ...

  5. Keil uVision “已停止工作”

    之前一直受这个问题的困扰,但是因为只是下载程序,下载镜像文件完事就算了.随便keil挂掉. 今天要调试程序,发现开启调试keil就挂掉了,烦. 解决办法参见: http://218.244.144.1 ...

  6. Adobe AIR 代码签名证书使用指南

    Symantec,Thawte,GlobalSign 签发的代码签名证书都可以签名AIR文件.如果您还没有代码签名证书,请联系易维信(EVTrust)购买Adobe AIR 代码签名证书. 1.签名工 ...

  7. 49. spring boot日志升级篇—理论【从零开始学Spring Boot】

    我们之前在其中的一篇文章介绍过如何在spring boot中使用日志记录SLF4J. Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如 ...

  8. [bzoj1001]狼爪兔子[平面图的最小割等于其对偶图的最短路]

    一定要仔细算内存,,,又少写一个零.. #include <bits/stdc++.h> using namespace std; template<const int _n,con ...

  9. 【整理】uclibc,eglibc,glibc之间的区别和联系

    http://www.crifan.com/relation_between_uclibc_glibc_eglibc/ 1.Glibc glibc = GNU C Library 是GNU项(GNU ...

  10. Filter过滤器机制

    tomcat内部过滤器采用了责任链的设计模式, Tomcat的过滤器主要由Filter.FilterChain组成,FilterChain包含一个Filter数组.当Wrapper执行FilterCh ...