1 #pragma mark - 检查更新 2 3 - (void)checkUpdateWithAPPID:(NSString *)APPID 4 { 5 //获取当前应用版本号 6 NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary]; 7 NSString *currentVersion = [appInfo objectForKey:@"CFBundleVersion"]; 8 9 NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",APPID]; 10 NSURL *updateUrl = [NSURL URLWithString:updateUrlString]; 11 versionRequest = [ASIFormDataRequest requestWithURL:updateUrl]; 12 [versionRequest setRequestMethod:@"GET"]; 13 [versionRequest setTimeOutSeconds:60]; 14 [versionRequest addRequestHeader:@"Content-Type" value:@"application/json"]; 15 16 //loading view 17 CustomAlertView *checkingAlertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleDefault noticeText:@"正在检查更新..."]; 18 checkingAlertView.userInteractionEnabled = YES; 19 [self.navigationController.view addSubview:checkingAlertView]; 20 [checkingAlertView release]; 21 22 [versionRequest setCompletionBlock:^{ 23 24 [checkingAlertView removeFromSuperview]; 25 26 NSError *error = nil; 27 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[versionRequest responseData] options:NSJSONReadingMutableContainers error:&error]; 28 if (!error) { 29 if (dict != nil) { 30 // DLog(@"dict %@",dict); 31 int resultCount = [[dict objectForKey:@"resultCount"] integerValue]; 32 if (resultCount == 1) { 33 NSArray *resultArray = [dict objectForKey:@"results"]; 34 // DLog(@"version %@",[resultArray objectAtIndex:0]); 35 NSDictionary *resultDict = [resultArray objectAtIndex:0]; 36 // DLog(@"version is %@",[resultDict objectForKey:@"version"]); 37 NSString *newVersion = [resultDict objectForKey:@"version"]; 38 39 if ([newVersion doubleValue] > [currentVersion doubleValue]) { 40 NSString *msg = [NSString stringWithFormat:@"最新版本为%@,是否更新?",newVersion]; 41 newVersionURlString = [[resultDict objectForKey:@"trackViewUrl"] copy]; 42 DLog(@"newVersionUrl is %@",newVersionURlString); 43 // if ([newVersionURlString hasPrefix:@"https"]) { 44 // [newVersionURlString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"itms-apps"]; 45 // } 46 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:self cancelButtonTitle:@"暂不" otherButtonTitles:@"立即更新", nil]; 47 alertView.tag = 1000; 48 [alertView show]; 49 [alertView release]; 50 }else 51 { 52 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您使用的是最新版本!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; 53 alertView.tag = 1001; 54 [alertView show]; 55 [alertView release]; 56 } 57 } 58 } 59 }else 60 { 61 DLog("error is %@",[error debugDescription]); 62 } 63 }]; 64 65 [versionRequest setFailedBlock:^{ 66 [checkingAlertView removeFromSuperview]; 67 68 CustomAlertView *alertView = [[CustomAlertView alloc] initWithFrame:NAVIGATION_FRAME style:CustomAlertViewStyleWarning noticeText:@"操作失败,请稍候再试!"]; 69 [self.navigationController.view addSubview:alertView]; 70 [alertView release]; 71 [alertView selfRemoveFromSuperviewAfterSeconds:1.0]; 72 }]; 73 74 [versionRequest startSynchronous]; 75 } 76 77 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 78 { 79 DLog(@"newVersionUrl is %@",newVersionURlString); 80 if (buttonIndex) { 81 if (alertView.tag == 1000) { 82 if(newVersionURlString) 83 { 84 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:newVersionURlString]]; 85 } 86 } 87 } 88 }