关于提示版本升级~

今天遇到了关于版本升级的问题,弹出提示框给用户提醒升级,一个版本只提醒一次

http://www.jianshu.com/p/62a18e8ed92b   这个是原文,但是有错误 这里改动了一下加了些需求

#define kAPP_URL [AppDelegate isLanguageEnglish][email protected]"http://itunes.apple.com/lookup?id=":@"http://itunes.apple.com/cn/lookup?id="

#define kAppId  @"1111111111"//appID

- (void)updateApp

{

NSError *error;

NSString *urlStr = [NSString stringWithFormat:@"%@%@",kAPP_URL,kAppId];

NSURL *url = [NSURL URLWithString:urlStr];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSDictionary *appInfoDict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:&error];

if (error) {

NSLog(@"%@", error.description);

return;

}

NSArray *resultArray = [appInfoDict objectForKey:@"results"];

if (![resultArray count]) {

NSLog(@"error : resultArray == nil");

return;

}

NSDictionary *infoDict = [resultArray objectAtIndex:0];

//获取服务器上应用的最新版本号

NSString *updateVersion = infoDict[@"version"];

NSString *trackName = infoDict[@"trackName"];

_trackViewUrl = infoDict[@"trackViewUrl"];

//获取当前设备中应用的版本号

NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];

NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];

NSArray<NSString*> *currentArray = [currentVersion componentsSeparatedByString:@"."];

NSArray<NSString*> *updateArray = [updateVersion componentsSeparatedByString:@"."];

NSMutableString *currentString = [NSMutableString string];

for (NSString *str in currentArray) {

NSString * tempstr = [NSString stringWithFormat:@"%03d",[str intValue]];

[currentString appendString:tempstr];

}

NSMutableString *updateString = [NSMutableString string];

for (NSString *str in updateArray) {

NSString * tempstr = [NSString stringWithFormat:@"%03d",[str intValue]];//补全位数再比较大小

[updateString appendString:tempstr];

}

if ([[NSUserDefaults standardUserDefaults]objectForKey:updateString]) {

return;

}else{

[[NSUserDefaults standardUserDefaults]setObject:@0 forKey:updateString];//一个版本只提醒一次

}

//判断两个版本是否相同

if ([currentString longLongValue] < [updateString longLongValue]) {

NSString *titleStr = [NSString stringWithFormat:@"检查更新:%@", trackName];

NSString *messageStr = [NSString stringWithFormat:@"发现新版本 %@ 是否更新\n%@", updateVersion,infoDict[@"releaseNotes"]];//版本更新内容

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:titleStr message:messageStr delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"升级", nil];

alert.tag = [kAppId intValue];

[alert show];

}

}

//判断用户点击了哪一个按钮

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

if (alertView.tag == [kAppId intValue]) {

if (buttonIndex == 1) { //打开app store上应用的详情页面

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:self.trackViewUrl]];

}

}

}

时间: 2024-11-06 06:36:55

关于提示版本升级~的相关文章

win10家庭版升级为专业版(win10专业版激活方法)

替换专业版密钥 1.在win10家庭版桌面上鼠标右键点击[此电脑]-[属性],点击右下角的[更改产品密钥] 2.也可以点击开始-设置-更新和安全-激活-[更改产品密钥] 3.输入要升级的win10版本的产品密钥,要升级win10专业版就输入 DR9VN-GF3CR-RCWT2-H7TR8-82QGT (也可以在网上找其他密钥) 4.点击下一步,提示正在准备升级,需要一段时间 5.升级完成后,重启进入桌面,提示版本升级已完成,使用密钥升级后,系统会变成专业版 win10专业版激活方法 1. 先查看

MySQL版本升级

日常工作中,数据版本升级是常有的事,升级过程非常简单,但也容易忽视一些问题 1.大版本号和小版本号,使用在什么位(32/64)的系统上 2.或者5.1的默认使用区分大小写,若5.6使用不区分,这会导致APP找不到库的,所以需要注意 3.就是5.1到5.6升级没问题,但到5.7,有时候会提示: ERROR 1031 (HY000) at line 833: Table storage engine for 'histories' doesn't have this option 这是为什么呢?因为

python版本升级及pip部署方法

Python版本升级 CentOS 6.3自带的Python版本为2.6,首先需要升级到2.7版本.由于旧版本的Python已被深度依赖,所以不能卸载原有的Python,只能全新安装. 1.下载Python-2.7.4.tgz wget http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz 2. 解压安装,命令如下: 1 tar -xvf Python-2.7.4.tgz 2 cd Python-2.7.4 3 ./configure --pre

mysql查询优化器的提示(hit)

如果对优化器选择的执行计划不满意,可以使用优化器提供的几个提示来控制最终的执行计划,关于每个提示的具体用法,建议直接阅读官方手册,一些提示和版本有直接关系,可以使用的一些提示如下: high_priority和low_priority: 这个提示告诉mysql,当多个语句同时访问某一个表的时候,哪些语句的优先级相对高一些,哪些语句的优先级相对低一些. high_priority用于select语句的时候,mysql会将其放到表的队列的最前面,而不是按照常规顺序等待,high_priority还可

sql server 2008 提示评估期已过的解决方法(升级无效)

提示窗口: 解决步骤: 第一步:进入SQL2008配置工具中的安装中心 第二步:再进入维护界面,选择版本升级 第三步:进入产品密钥,输入密钥 第四步:一直点下一步,直到升级完毕. SQL Server 2008 Developer(开发版):PTTFM-X467G-P7RH2-3Q6CG-4DMYB SQL Server 2008 Enterprise(企业版):JD8Y6-HQG69-P9H84-XDTPG-34MBB 注意:如以上选择“版本升级”总提示“失败”并要求“重启计算机”时,请把进程

WIN10重装到WIN7之后系统提示“bootmgr is missing ”解决办法

近日,小编试着将WIN10系统改装回WIN7系统,我们都知道,系统从低版本升级为高版本容易,但是从高版本降低为低版本就有点难度.小编大概讲一下WIN10装回WIN7的思路:1.准备个大于4G的空U盘作为启动盘.2.打开启动盘里"DG分区",在菜单栏里点"硬盘"---"删除所有分区".这里需要注意的是删除在电脑上硬盘所有的分区是,不仅仅是C盘.3.win1分区表为GPT,而win7的分区表为MBR.所以此步骤要做的是将主分区也就是系统盘的分区表类型

【REACT NATIVE 系列教程之九】REACT NATIVE版本升级步骤与注意事项!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2288.html 由于React Native处于快速迭代发展中,因此组件功能的扩展.语法的变更也将会有较大的区别,因此升级版本则属于务必掌握的了. 昨天Himi刚从0.23版本升级到0.26,升级的主要原因有两点: 1. 一些组件在最新版本中加入了很多新的属性,例如0.23版本中Modal动画没有最新的属性: an

SQLite数据库版本升级的管理实现

我们知道在SQLiteOpenHelper的构造方法: super(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) 中最后一个参数表示数据库的版本号.当新的版本号大于当前的version时会调用方法: onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 所以我们的重点是在该方法中实现SQLite数据库版本升级的管理

cordova 跨平台APP版本升级

利用cordova+ionic开发好项目,之后就是打包发布,在这之前,还要做一个版本升级的小功能. 首先我们项目根目录里自然少不了配置:config.xml中 如图.version,我们以后每次升级APP就从这个wiget标签中读取version字段. cordova已经给们提供了APP版本获取插件工具,cordova-plugin-appversion 通过插件获取到本地app的版本号,通过请求获取后台的版本号.然后比较. function onReady() { cordova.getApp