首页 > 代码库 > IOS判断app在appstore是否有可用的更新

IOS判断app在appstore是否有可用的更新

iTunes可以提供app的版本信息,主要通过appid获取,如 http://itunes.apple.com/lookup?id=946449501,使用时只需要到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;        //比较版本号大小        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临时变量存储app下载地址,可以让app跳转到appstore            UIAlertView* alertview =[[UIAlertView alloc] initWithTitle:@"版本升级" message:[NSString stringWithFormat:@"发现有新版本,是否升级?"] delegate:self cancelButtonTitle:@"暂不升级" otherButtonTitles:@"马上升级", nil];            [alertview show];                    }            }}- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{    if (buttonIndex == 1){        UIApplication *application = [UIApplication sharedApplication];        [application openURL:[NSURL URLWithString:trackViewURL]];    }}

 

IOS判断app在appstore是否有可用的更新