iOS点点滴滴

iOS 检测 APP 版本更新

2016-11-09  本文已影响191人  amoLink

直接贴代码,请勿见怪,哈哈~

#pragma mark -检测新版本

//检验是否更新

-(void)updateToNewVersion {

NSString *urlStr =[NSString stringWithFormat:@"https://itunes.apple.com/lookup?id=appId"];

NSURL *url=[NSURL URLWithString:urlStr];

//2.创建请求对象

NSURLRequest *request =[NSURLRequest requestWithURL:url];

//3.获得会话对象

NSURLSession *session =[NSURLSession sharedSession];

//4.根据会话对象创建一个Task(发送请求)

/*

第一个参数:请求对象

第二个参数:completionHandler回调(请求完成【成功|失败】的回调)

data:响应体信息(期望的数据)

response:响应头信息,主要是对服务器端的描述

error:错误信息,如果请求失败,则error有值

*/

NSURLSessionDataTask *dataTask =[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data,NSURLResponse * _Nullable response,NSError * _Nullable error){

if(error == nil){

//6.解析服务器返回的数据

//说明:(此处返回的数据是JSON格式的,因此使用NSJSONSerialization进行反序列化处理)

NSDictionary *dict =[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

NSLog(@"dict --- %@",dict);

//获取appStore上的版本号

NSString *appStoreVersion =[[[dict valueForKey:@"results"]valueForKey:@"version"]firstObject];

//获取当前版本号

NSString *currenVersion =[[NSBundle mainBundle]objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

if(![appStoreVersion isEqualToString:currenVersion]){

NSLog(@"发现新版本");

dispatch_async(dispatch_get_main_queue(),^{

NSString *versonString =[NSString stringWithFormat:@"版本号:%@",appStoreVersion];

//提示是否更新

UIAlertView *alter =[[UIAlertView alloc]initWithTitle:@"发现新版本" message:versonString delegate:self cancelButtonTitle:@"立即更新" otherButtonTitles:@"下次更新",nil];

[alter show];

});

}

}

}];

//5.执行任务

[dataTask resume];

}

#pragma mark - alertView代理事件

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

NSLog(@"点击了第%d个按钮",buttonIndex);

//立即更新0,下次更新1

if(buttonIndex == 0){

NSString *str =[NSString stringWithFormat:@"https://itunes.apple.com/us/app/id%d",appId];

// 跳转到appStroe对应的应用

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:str]];

} else {

}

}

上一篇下一篇

猜你喜欢

热点阅读