iOS开发之检查更新

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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]];

}

}

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航