iOS开发 检测版本更新

时间:2022-04-19 02:17:22

iOS开发 检测版本更新的实现

苹果给了我们一个接口,能根据应用id请求一些关于应用的信息。我们可以根据返回的信息,来判断版本是否和应用的版本一致,如果不一致,那么就出现新的版本了。这时,就需要向用户提醒有新的版本,需要更新。具体步骤如下:

 NSMutableURLRequest*request=[[NSMutableURLRequestalloc]init];

[requestsetURL:[NSURLURLWithString:[NSStringstringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appleID]]];

[requestsetHTTPMethod:@"GET"];

NSData*returnData=[NSURLConnectionsendSynchronousRequest:requestreturningResponse:nilerror:nil];

NSDictionary*jsonData=[NSJSONSerializationJSONObjectWithData:returnDataoptions:0error:nil];

这里,我们通过同步请求,解析json数据,得到了数据。

好的,我们这里需要,version,trackViewUrl,trackName。

  NSString*latestVersion=[releaseInfoobjectForKey:@"version"];

NSString*trackViewUrl1 =[releaseInfoobjectForKey:@"trackViewUrl"];//地址trackViewUrl

NSString*trackName=[releaseInfoobjectForKey:@"trackName"];//trackName

获取此应用的版本号

  NSString*currentVersion=[infoDictobjectForKey:@"CFBundleVersion"];

通过latestVersion和currentVersion的比较,来判断是否有新的更新。

NSDictionary*infoDict=[[NSBundlemainBundle]infoDictionary];

NSString*currentVersion=[infoDictobjectForKey:@"CFBundleVersion"];

doubledoubleCurrentVersion=[currentVersiondoubleValue];

if(doubleCurrentVersion<doubleUpdateVersion){

UIAlertView*alert;

alert=[[UIAlertViewalloc]initWithTitle:trackName

message:@"有新版本,是否升级!"

delegate: self

cancelButtonTitle:@"取消"

otherButtonTitles: @"升级", nil];

alert.tag = 1001;

[alertshow];

}

else{

UIAlertView*alert;

alert=[[UIAlertViewalloc]initWithTitle:trackName

message:@"暂无新版本"

delegate: nil

cancelButtonTitle:@"好的"

otherButtonTitles: nil, nil];

[alertshow];

}

如果有新的版本,那么就跳转至下载页面,这里就用到了trackViewUrl,trackViewUrl是全路径,直接请求。

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:trackViewUrl]];