码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-12-12 11:20:18      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   os   使用   sp   for   

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是否有可用的更新

标签:des   blog   http   io   ar   os   使用   sp   for   

原文地址:http://www.cnblogs.com/Longkin/p/4159175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!