iOS开发之检查更新
iOS设备检查更新版本:
#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://blog.csdn.net/heartofthesea/article/details/14127587
微信公众号:
猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。