iTunes可以提供app的版本信息祸穷,主要通過(guò)appid獲取少漆,如?http://itunes.apple.com/lookup?id=946449501末誓,使用時(shí)只需要到iTunes查找自己的appid,修改成自己的appid即可
使用HTTP模式讀取此鏈接可以獲取app信息的json字符串
貼出部分代碼
-(void)checkVersion
{
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];//strURL為你的appid地址
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request startAsynchronous];
}
-(void)requestFinished:(ASIHTTPRequest *)request
{
NSString *recStr = [[NSString alloc] initWithData:request.responseData encoding:NSUTF8StringEncoding];
recStr = [recStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];//返回的字符串有前面有很多換行符蹋艺,需要去除一下
NSDictionary *resultDic = [JSONHelper DeserializerDictionary:recStr];//jsonhelper是我封裝的json解析類,你可以使用自己方式解析
NSArray *infoArray = [resultDic objectForKey:@"results"];
if (infoArray.count > 0) {
NSDictionary* releaseInfo =[infoArray objectAtIndex:0];
NSString* appStoreVersion = [releaseInfo objectForKey:@"version"];
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
NSArray *curVerArr = [currentVersion componentsSeparatedByString:@"."];
NSArray *appstoreVerArr = [appStoreVersion componentsSeparatedByString:@"."];
BOOL needUpdate = NO;
//比較版本號(hào)大小
int maxv = (int)MAX(curVerArr.count, appstoreVerArr.count);
int cver = 0;
int aver = 0;
for (int i = 0; i < maxv; i++) {
if (appstoreVerArr.count > i) {
aver = [NSString stringWithFormat:@"%@",appstoreVerArr[i]].intValue;
}
else{
aver = 0;
}
if (curVerArr.count > i) {
cver = [NSString stringWithFormat:@"%@",curVerArr[i]].intValue;
}
else{
cver = 0;
}
if (aver > cver) {
needUpdate = YES;
break;
}
}
//如果有可用的更新
if (needUpdate){
trackViewURL = [[NSString alloc] initWithString:[releaseInfo objectForKey:@"trackViewUrl"]];//trackViewURL臨時(shí)變量存儲(chǔ)app下載地址善绎,可以讓app跳轉(zhuǎn)到appstore
UIAlertView* alertview =[[UIAlertView alloc] initWithTitle:@"版本升級(jí)" message:[NSString stringWithFormat:@"發(fā)現(xiàn)有新版本黔漂,是否升級(jí)?"] delegate:self cancelButtonTitle:@"暫不升級(jí)" otherButtonTitles:@"馬上升級(jí)", nil];
[alertview show];
}
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1){
UIApplication *application = [UIApplication sharedApplication];
[application openURL:[NSURL URLWithString:trackViewURL]];
}
}