#pragma mark - 检查更新 - (void)checkUpdateWithAPPID:(NSString *)APPID { //获取当前应用版本号 NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [appInfo objectForKey:@"CFBundleVersion"]; NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",APPID]; NSURL *updateUrl = [NSURL URLWithString:updateUrlString]; versionRequest = [ASIFormDataRequest requestWithURL:updateUrl]; [versionRequest setRequestMethod:@"GET"]; [versionRequest setTimeOutSeconds:60]; [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"]; //loading view CustomAlertView *checkingAlertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleDefault noticeText:@"正在检查更新..."]; checkingAlertView.userInteractionEnabled = YES; [self.navigationController.view addSubview:checkingAlertView]; [checkingAlertView release]; [versionRequest setCompletionBlock:^{ [checkingAlertView removeFromSuperview]; NSError *error = nil; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[versionRequest responseData] options:NSJSONReadingMutableContainers error:&error]; if (!error) { if (dict != nil) { // DLog(@"dict %@",dict); int resultCount = [[dict objectForKey:@"resultCount"] integerValue]; if (resultCount == 1) { NSArray *resultArray = [dict objectForKey:@"results"]; // DLog(@"version %@",[resultArray objectAtIndex:0]); NSDictionary *resultDict = [resultArray objectAtIndex:0]; // DLog(@"version is %@",[resultDict objectForKey:@"version"]); NSString *newVersion = [resultDict objectForKey:@"version"]; if ([newVersion doubleValue] > [currentVersion doubleValue]) { NSString *msg = [NSString stringWithFormat:@"最新版本为%@,是否更新?",newVersion]; newVersionURlString = [[resultDict objectForKey:@"trackViewUrl"] copy]; DLog(@"newVersionUrl is %@",newVersionURlString); // if ([newVersionURlString hasPrefix:@"https"]) { // [newVersionURlString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"itms-apps"]; // } UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:self cancelButtonTitle:@"暂不" otherButtonTitles:@"立即更新", nil]; alertView.tag = 1000; [alertView show]; [alertView release]; }else { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您使用的是最新版本!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; alertView.tag = 1001; [alertView show]; [alertView release]; } } } }else { DLog("error is %@",[error debugDescription]); } }]; [versionRequest setFailedBlock:^{ [checkingAlertView removeFromSuperview]; CustomAlertView *alertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleWarning noticeText:@"操作失败,请稍候再试!"]; [self.navigationController.view addSubview:alertView]; [alertView release]; [alertView selfRemoveFromSuperviewAfterSeconds:1.0]; }]; [versionRequest startSynchronous]; } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { DLog(@"newVersionUrl is %@",newVersionURlString); if (buttonIndex) { if (alertView.tag == 1000) { if(newVersionURlString) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:newVersionURlString]]; } } } }
原文:http://www.cnblogs.com/monnRedShine/p/3892333.html