• 根据AppStore上的数据进行判断是否更新
    苹果给了我们一个接口,可以根据应用的id请求应用的一些信息,取出其中的版本与当前运行的应用的版本号比较。

//同步请求获取应用的信息字典
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appleID]]];
[request setHTTPMethod:@"GET"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSDictionary *releaseInfo = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:nil];
NSArray *resultArr = releaseInfo[@"results"];
NSDictionary *resultDict = resultArr[0];
//获取需要的version,trackViewUrl(更新应用的地址),trackName
NSString *latestVersion = [resultDict objectForKey:@"version"];
NSString *trackViewUrl1 = [resultDict objectForKey:@"trackViewUrl"];//地址trackViewUrl
NSString *trackName = [resultDict objectForKey:@"trackName"];//trackName
//获取应用当前的版本号NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"];  double doubleCurrentVersion = [currentVersion doubleValue]; double doubleUpdateVersion = [latestVersion doubleValue];
//根据版本号比较判断是否更新           if (doubleCurrentVersion < doubleUpdateVersion) {  UIAlertView *alert;  alert = [[UIAlertView alloc] initWithTitle:trackName                                                 message:@"有新版本,是否升级!"    delegate: self     cancelButtonTitle:@"取消"  otherButtonTitles: @"升级", nil];  alert.tag = 1001;  [alert show];  }  else{  UIAlertView *alert;  alert = [[UIAlertView alloc] initWithTitle:trackName  message:@"暂无新版本"  delegate: nil  cancelButtonTitle:@"好的"  otherButtonTitles: nil, nil];  [alert show];  } //如果需要更新,就跳转到下载页面,trackViewUrl是全路径,直接请求[[UIApplication sharedApplication] openURL:[NSURL URLWithString:trackViewUrl]]; 
  • 根据后台返回的数据进行判断是否更新

    这种方法可以用在每次启动应用程序的时候做一次判断是否更新,可以根据后台返回的数据里取出版本号,与运行的应用当前的版本号做对比,或者当版本更新的时候后台返回一个bool类型的字段,判断下是否需要更新。

    注意:当ios做更新版本的时候,如果有更新版本的按钮,如果只是显示版本号而没有点击响应事件的时候最好按钮置灰,否则审核的时候可能会审核不通过,若可以点击响应,则该更新按钮要和当前页面的其他按钮界面保持一致。

iOS 版本更新的两种方法相关推荐

  1. iOS: JS和Native交互的两种方法,iosjsnative交互

    iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...

  2. iOS学习——UITableViewCell两种重用方法的区别

    今天在开发过程中用到了UITableView,在对cell进行设置的时候,我发现对UITableViewCell的重用设置的方法有如下两种,刚开始我也不太清楚这两种之间有什么区别.直到我在使用方法二进 ...

  3. iOS 两种方法实现左右滑动出现侧边菜单栏 slide view

        现在很多的APP中都有slide view,左右滑动出现侧边菜单栏的功能,Weico这个应用就有. 网上有很多第三方的类库实现了这种效果,其实自己代码写的话也是很简单的,下面我将介绍两种方法实 ...

  4. C++/C++11中用于定义类型别名的两种方法:typedef和using

    类型别名(type alias)是一个名字,它是某种类型的同义词.使用类型别名有很多好处,它让复杂的类型名字变得简单明了.易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的.在C++中,任何 ...

  5. iCloud照片怎么恢复到相册?两种方法轻松解决

    iCloud照片怎么恢复到相册?iCloud顾名思义就是云备份,备份到手机iCloud里的数据,手机里的数据可以用电脑进行查看,除了电脑版iCloud可以查看,使用专业的恢复软件也可以,小编为大家介绍 ...

  6. 微信小程序 使用特殊字体的两种方法

    微信小程序中如何使用特殊字体 我有两种方法: 1. 转base64格式 下载要使用的字体,建议TTF格式 打开网站 https://transfonter.org/ 转换格式,得到压缩包 将压缩包解压 ...

  7. 怎么卸载手机上下载的软件?苹果手机有两种方法

    怎么卸载手机上下载的软件?很多人会在手机上下载各种各样的软件,时间一长,小内存的手机无法储存这么多内容,建议大家定期将不需要的软件直接卸载,避免占用空间影响手机的使用.今天给大家分享一下卸载手机软件的 ...

  8. 手机抓包的两种方法:wireshark抓包和fiddler抓包

    转载来源:https://www.chinaz.com/web/2015/0326/393344.shtml 手机抓包的两种方法:wireshark抓包和fiddler抓包 2015-03-26 10 ...

  9. PPT怎么转化成PDF?这两种方法教你快速解决!

    今天我们将向您介绍如何将 PowerPoint 演示文稿 (PPT) 转换为 PDF 文件. 我们将通过两种方法来做到这一点: 将 PowerPoint 演示文稿另存为 PDF 文件. 使用 奇客免费 ...

最新文章

  1. Flask的flask-sqlalchemy
  2. 计算机求职意向范文,自我评价与求职意向范文3篇
  3. 【项目介绍】FTP服务器
  4. 如何计算一只鸡的表面积?各大专业的奇葩解法
  5. leetcode1282. 用户分组(贪心算法)
  6. 啪啪打脸!领导说:try-catch要放在循环体外!
  7. vue学习笔记之:为何data是一个方法
  8. ubuntu+intellij IDEA+android环境配置
  9. mongodb性能 mysql_MySQL和MongoDB的性能测试
  10. 六种异常处理的陋习(转自http://www.blogjava.net/freeman1984/archive/2007/09/27/148850.html)...
  11. http://snaps.php.net,科技常识:Windows下编译PHP和memcache扩展教程
  12. 橙色优学:PS扣图技术讲解,六种方法你都知道吗?
  13. ghost linux 黑屏,Ghost 与 Linux 的兼容性
  14. C++之常指针和指向常量的指针
  15. 「递归」第4集 | 退役黑客带你走进白帽子的江湖
  16. IT男未来发展之路——迷茫了就看看
  17. springboot毕设项目人机工程与交互体验实验室网站zo77m(java+VUE+Mybatis+Maven+Mysql)
  18. Oracle 用户无法登录 LOCKED(TIMED)
  19. 教你如何用Python追踪快递信息
  20. 58同城如何摸石头过河?

热门文章

  1. [Hadoop]ERROR security.UserGroupInformation:PriviledgedActionException as:Administrator
  2. 关于API和SDK两者的区别
  3. [转贴] 男人必看的故事
  4. Zabbix监控平台安装教程,Zabbix入门教程
  5. SimpleITK、Slicer读取图像信息
  6. OpenPose Python API调用:ImportError: cannot import name 'pyopenpose' from 'openpose'
  7. 【典型例题】数据库——用MySQL来建立创建员工表;
  8. 不用GPU搭建一个漫画自动翻译网站
  9. html标记分两类,html标记的分类(转)
  10. 关于最近做的一些题的归档吧