IOS 判断应用版本和升级提示

原文地址:http://blog.csdn.net/jslsblog/article/details/9932767

ios中应用的版本判断有两种方法:

1.将你的应用版本号同步在你自己的服务器上,打开程序后去自己的服务器获取版本号和手机上的应用版本号做比较,然后去appstore升级

2.通过url获取appstore上的最新版本信息,然后和手机上的程序版本号做比较,判断是否升级。

最常用的就是方法2,下面讲讲方法2的实现过程。

第一步是去获取appstore上你的应用的版本信息,需要用到的url    #define APP_URL    @"http://itunes.apple.com/lookup?id=662004496"

(替换id即可),我看网上很多的例子都是同步获取信息,这样会阻塞主线程,我还是觉得异步的比较好。

[cpp] view plaincopy

  1. -(void)checkVersion:(NSString* )appurl
  2. {
  3. ASIFormDataRequest* request=[ASIFormDataRequest requestWithURL:[NSURL URLWithString:appurl]];
  4. [request setRequestMethod:@"POST"];
  5. [request setDelegate:self];
  6. [request startAsynchronous];
  7. }

返回结果是需要使用json解析

[cpp] view plaincopy

  1. - (void)requestFinished:(ASIHTTPRequest *)request
  2. {
  3. NSDictionary* resultDic=[request.responseData JSONValue];
  4. NSArray* infoArray = [resultDic objectForKey:@"results"];
  5. if (infoArray.count>0) {
  6. NSDictionary* releaseInfo =[infoArray objectAtIndex:0];
  7. NSString* appStoreVersion = [releaseInfo objectForKey:@"version"];
  8. NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
  9. NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
  10. if (![appStoreVersion isEqualToString:currentVersion])
  11. {
  12. trackViewURL = [[NSString alloc] initWithString:[releaseInfo objectForKey:@"trackViewUrl"]];
  13. NSString* msg =[releaseInfo objectForKey:@"releaseNotes"];
  14. UIAlertView* alertview =[[UIAlertView alloc] initWithTitle:@"版本升级" message:[NSString stringWithFormat:@"%@%@%@", @"新版本特性:",msg, @"\n是否升级?"] delegate:self cancelButtonTitle:@"稍后升级" otherButtonTitles:@"马上升级", nil];
  15. [alertview show];
  16. }
  17. }
  18. }

这里要讲讲返回的json数据,aapple返回的数据有很多,你看情况选择你需要的数据,一般需要的一个是version,一个是应用新特性releaseNotes,还有一个就是跳转地址 trackViewUrl

artistId = 
    artistName = 
    artistViewUrl = 
    artworkUrl100 = 
    artworkUrl512 = 
    artworkUrl60 =
    bundleId = 
    contentAdvisoryRating =
    currency = 
    description =
    features =   
    fileSizeBytes = 
    formattedPrice = 
    genreIds =    
    genres =    
    ipadScreenshotUrls =   
    isGameCenterEnabled =
    kind = 
    languageCodesISO2A =   
    price = 0;
    primaryGenreId = 6017;
    primaryGenreName = 
    releaseDate = "2013-08-07T07:03:16Z";
    releaseNotes = "1\U3001\U6dfb\U52a0QQ\U8054\U7cfb\U529f\U80fd\n2\U3001\U8bfe\U7a0b\U81ea\U52a8\U64ad\U653e\U65f6\U6e10\U9690\U8fc7\U5ea6\Uff0c\U89c6\U89c9\U6548\U679c\U66f4\U597d\n3\U3001\U4e13\U9898\U6392\U7248\U91cd\U65b0\U8bbe\U8ba1\Uff0c\U4f7f\U4e4b\U66f4\U591a\U7684\U663e\U793a\U4e13\U9898\U4ecb\U7ecd\n4\U3001\U8f6e\U64ad\U56fe\U7247\U52a0\U70b9\U6307\U793a\n5\U3001\U5b66\U9662\U4ecb\U7ecd\U53d8\U6210\U5bcc\U6587\U672c\Uff0c\U53ef\U4ee5\U6d4f\U89c8\U5230\U56fe\U7247\U63cf\U8ff0\n6\U3001\U4fee\U6539\U4e00\U4e9bbug";
    screenshotUrls =   
       
    sellerName = 
    supportedDevices =   
    trackCensoredName = 
    trackContentRating =
    trackId = 
    trackName = 
    trackViewUrl = "https://itunes.apple.com/us/app/quan-min-yu-jia-xue-xiao/id662004496?mt=8&uo=4";
    version = "1.0.1";
    wrapperType =

最后一步就是点击升级后的跳转界面

[cpp] view plaincopy

  1. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
  2. {
  3. if (buttonIndex==1)
  4. {
  5. UIApplication *application = [UIApplication sharedApplication];
  6. [application openURL:[NSURL URLWithString:trackViewURL]];
  7. }
  8. }

欢迎您发表您的意见,建议,大家共同学习。

时间: 2024-10-13 00:12:34

IOS 判断应用版本和升级提示的相关文章

判断IE版本

<script type="text/javascript">var browser=navigator.appNamevar b_version=navigator.appVersionvar version=b_version.split(";");var trim_Version=version[1].replace(/[ ]/g,"");if(browser=="Microsoft Internet Explorer

powershell 判断操作系统版本 命令

powershell 传教士 原创文章.始于 2015-12-15 允许转载,但必须保留名字和出处,否则追究法律责任 一 前言 判断操作系统版本,是个老话题,bat.vbs中都有例子,这本不是重要问题,我感脚不值得写帖.但是捏,随着win版本的增多,powershell版本碎片化越来越严重了,所以<用powershell判断操作系统版本>才越来越重要了.也就是说,使用稍微偏一点的powershell命令前,你必须判断操作系统版本.或者,强烈推荐大家用最新版本win服务器,win客户机玩powe

【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性

判断IE版本主要的是获取两个属性,a.当前浏览器名称,b.当前浏览器版本,为此不得不了解navigator对象. 先贴代码 1 window.onload = function() { 2 var browser_name = navigator.appName, //获取当前浏览器的名称 3 browser_version = navigator.appVersion, //获取当前浏览器的平台和版本信息 4 version_arr = browser_version.split(";&quo

jquery判断浏览器版本插件,jquery-browser.js

一.jquery判断浏览器版本插件,jquery-browser.js jquery 1.9 之后已经删除判断浏览器版本的方法: $.browser.msie $.browser.version 原因是: 注意:通过user agent字符串来检测浏览器不是一个好主意,在1.9中将完全移除该方法,不过你可以使用jQuery Migrate(迁移)插件.或者你可以试试Modernizr. 但如果想用怎么办呢? 二.解决方法: 复制下面的代码,保存为jquery-browser.js,在jquery

iOS 判断是push还是present

iOS 判断是push还是present下面这种方法判断成功了  if (self.presentingViewController)   {      [weakSelf dismissViewControllerAnimated:YES completion:nil];    }    else {       [weakSelf.navigationController popViewControllerAnimated:YES];      }

判断浏览器版本

jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9. 如果要全面支持 IE,并混合使用 jQuery 1.9 和 2.0, 官方的解决方案是: ? 1 2 3 4 5 6 <!--[if lt IE 9]>     <script src='jquery-1.9.0.

用条件注释判断浏览器版本解决页面兼容问题

在IE8.IE9上可能好好的,当我们在IE6.IE7或者是其他的浏览器上再浏览这些页面时,可能会发现我们的页面已经面目全非了,那么如何解决兼容问题呢,本文就为大家一一道来对于浏览器兼容问题,我们应该碰到很多了,在平时写一些页面时,在IE8.IE9上可能好好的,当我们在IE6.IE7或者是其他的浏览器上再浏览这些页面时,可能会发现我们的页面已经面目全非了,作为一名前端开发人员,这是最让人发疯的问题了,那么我们该怎么解决这些问题呢? 首先,我们写的页面在不同的浏览器上之所以会出现表现不同的问题,是因

iOS判断为空或者只为空格

本文转载至 :http://www.cnblogs.com/superhappy/archive/2012/11/08/2761403.html 经常有需求 要判断不能为空,后台老是鄙视不做非空判断的前端 ,木办法 只能写一个. 第一种想法:我不就是判断 是不是nil就可以了么.结果发现太天真,用户可以输入空格. 对于这种蛋疼的用户,只能采取蛋疼的方法: -(Bool) isEmpty:(NSString *) str { if (!str) { return true; } else { //

判断IE版本的HTML语句详解,如:[if lte IE 9]……[endif]

我们常常会在网页的HTML里面看到形如[if lte IE 9]--[endif]的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断语句的规则是什么呢?请看下文: <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![endif]--><!--[if IE 6]> 仅IE6可识别 <![endif]--><!--[i