天天看点

iOS ——版本更新检测 判断应用版本和升级提示

ios中应用的版本判断有两种方法:

1.将你的应用版本号同步在你自己的服务器上,打开程序后去自己的服务器获取版本号和手机上的应用版本号做比较,然后去appstore升级

2.通过url获取appstore上的最新版本信息,然后和手机上的程序版本号做比较,判断是否升级。

最常用的就是方法2,下面讲讲方法2的实现过程。

第一步是去获取appstore上你的应用的版本信息,需要用到的url    #define APP_URL    @"http://itunes.apple.com/lookup?id=662004496"

//连网获取appstore 里软件的版本号与本地的版本号对比。当前版本号< appstore 里的版本,提示更新。

    [NetWork getWithURL:homeUrl params:nil success:^(NSDictionary * responseObject) {

        NSArray *infoArray = [responseObject objectForKey:@"results"];

        if (infoArray.count > 0) {

            NSDictionary* releaseInfo =[infoArray objectAtIndex:0];

            //appstore 版本

            NSString* appStoreVersion = [releaseInfo objectForKey:@"version"];

            //当前版本

            NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];

            NSString *currentVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];

            if ([currentVersion compare:appStoreVersion]==NSOrderedAscending)

            {

                self.trackStr=releaseInfo[@"trackViewUrl"];

                UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"发现新版本" message:@"有新版本了,赶快更新看看吧!" delegate:self cancelButtonTitle:@"稍后再说" otherButtonTitles:@"立即升级", nil];

                [alertView show];

            }

        }

    } failure:^(NSError *error) {

    }];

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    return YES;

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex==1)

    {

        NSURL *trackURL=[NSURL URLWithString:self.trackStr];

        [[UIApplication sharedApplication]openURL:trackURL];

    }

}