iOS 提供一种检测新版本的方法
2017-07-13 22:13
302 查看
app升级,客户不知道,只靠前方运营人员是远远不够的,最近也给加了个升级提示,在此记下,一同学习
//MARK:查看新版本
- (BOOL)checkVersion {
NSString *newVersion;
NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=xxxxxxxxx(此处为app在商店里的id,去开发者账号上面可以找到)"];
NSString *jsonResponseString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
if (jsonResponseString != nil) {
NSData *data = [jsonResponseString dataUsingEncoding:NSUTF8StringEncoding];
//解析json数据
id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = json[@"results"];
for (NSDictionary *dic in array) {
newVersion = [dic valueForKey:@"version"];
}
Log(@"通过appStore获取的版本号是:%@",newVersion);
//获取本地软件的版本号
NSString *localVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; //CFBundleVersion--获取当前build版本 CFBundleShortVersionString--获取当前app版本
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"findNewVersion"];
//对比发现的新版本和本地版本
NSComparisonResult comparisonResult = [localVersion compare:newVersion options:NSNumericSearch];
switch (comparisonResult) {
case NSOrderedSame:
Log(@"本地版本与线上版本相同不需要更新");
break;
case NSOrderedAscending:
Log(@"本地版本 < 线上版本,需要更新");
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"findNewVersion"];
break;
case NSOrderedDescending:
Log(@"本地版本 > 线上版本,不需要更新");
break;
default:
break;
}
}
return hasNewVersion;
};
//MARK:查看新版本
- (BOOL)checkVersion {
NSString *newVersion;
NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=xxxxxxxxx(此处为app在商店里的id,去开发者账号上面可以找到)"];
NSString *jsonResponseString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
if (jsonResponseString != nil) {
NSData *data = [jsonResponseString dataUsingEncoding:NSUTF8StringEncoding];
//解析json数据
id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = json[@"results"];
for (NSDictionary *dic in array) {
newVersion = [dic valueForKey:@"version"];
}
Log(@"通过appStore获取的版本号是:%@",newVersion);
//获取本地软件的版本号
NSString *localVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; //CFBundleVersion--获取当前build版本 CFBundleShortVersionString--获取当前app版本
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"findNewVersion"];
//对比发现的新版本和本地版本
NSComparisonResult comparisonResult = [localVersion compare:newVersion options:NSNumericSearch];
switch (comparisonResult) {
case NSOrderedSame:
Log(@"本地版本与线上版本相同不需要更新");
break;
case NSOrderedAscending:
Log(@"本地版本 < 线上版本,需要更新");
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"findNewVersion"];
break;
case NSOrderedDescending:
Log(@"本地版本 > 线上版本,不需要更新");
break;
default:
break;
}
}
return hasNewVersion;
};
相关文章推荐
- ios检测新版本方法并更新
- iOS开发小技巧--UIButton的另一种布局方法(第一种在layoutSubViews方法中,这一种利用苹果提供的两个返回CGRect的方法)
- 串行通信波特率的一种自动检测方法
- 一种简单的SQL语法检测方法
- 主动退出iOS应用程序的一种方法
- 提供一种不错的SQL Server数据库设计方法,不再需要VISIO,PD,EA等专业工具
- Linux检测TCP连接断开的一种简单实现方法
- PPK提供的浏览器类型及版本检测方法
- 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法
- Linux用户进程内存泄露一种检测方法
- 谈谈iOS下图像颜色检测、颜色匹配的解决方法
- “可扩展标记语言”(XML) 提供一种描述结构化数据的方法。
- 服务器端包含提供了一种对现有HTML文档增加动态内容的方法
- 串行通信波特率的一种自动检测方法
- XML 命名空间提供了一种避免元素命名冲突的方法。
- 串行通信波特率的一种自动检测方法
- 一种语言/编码检测的复合方法
- NAC控制转了一种方法,提供第二种
- 再提供一种解决Nginx文件类型错误解析漏洞的方法
- 一种判断数列是否收敛的不动点检测方法(应用)