iOS 检测 APP 版本更新
直接贴代码,请勿见怪,哈哈~
#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 {
}
}