本文共 3224 字,大约阅读时间需要 10 分钟。
请求的URL地址 : http://itunes.apple.com/lookup?id=你的应用程序的ID
返回的数据为json格式,包括开发者ID、开发者名称、应用ID、应用名称、版本号等
NSArray *array = responseObject[@"results"];
NSDictionary *dict = [array lastObject];
NSString *serverVersion = dict[@"version"];
NSString *curVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
3> 比较两者,如果服务器上的版本号 > 当前应用版本号,则提示用户
/** * check new version */ - (void)checkNewVersionApp { AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] init]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", @"text/plain", @"text/javascript", @"text/json", nil];; manager.requestSerializer.timeoutInterval = 5.f; [manager POST:@"" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { BOOL hasNewVersion = false; NSString *curVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; NSArray *curVersionArr = [curVersion componentsSeparatedByString:@"."]; NSArray *array = responseObject[@"results"]; NSDictionary *dict = [array lastObject]; serverVersion = dict[@"version"]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSString *ignoreAppVersion = [userDefaults objectForKey:@"ignoreAppVersion"]; if([serverVersion isEqualToString:ignoreAppVersion]) { return; } NSArray *serverVersionArr = [serverVersion componentsSeparatedByString:@"."]; if (curVersionArr.count > serverVersionArr.count) { // 1.2.1 1.3 for (int i = 0; i < serverVersionArr.count; i++) { int oldVersion = [curVersionArr[i] intValue]; int newVersion = [serverVersionArr[i] intValue]; if (oldVersion < newVersion) { hasNewVersion = true; break; } else if (oldVersion > newVersion) { break; } } } else if (curVersionArr. count < serverVersionArr. count ) { // 1.2 1.3.1 for ( int i = 0 ; i < curVersionArr. count ; i++) { int oldVersion = [curVersionArr[i] intValue ]; int newVersion = [serverVersionArr[i] intValue ]; if (oldVersion < newVersion) { hasNewVersion = true ; break ; } else if (oldVersion > newVersion) { break; } } } else { // 1.2 1.3 for ( int i = 0 ; i < curVersionArr. count ; i++) { int oldVersion = [curVersionArr[i] intValue ]; int newVersion = [serverVersionArr[i] intValue ]; if (oldVersion < newVersion) { hasNewVersion = true ; break ; } else if (oldVersion > newVersion) { break; } } } if (hasNewVersion) { // 存在新版本,提示用户更新 UIAlertView *alert = [[ UIAlertView alloc ] initWithTitle : @" 发现新版本 " message :[ NSString stringWithFormat : @" 电梯保 v%@ ,赶快去体验吧 " , serverVersion ] delegate : self cancelButtonTitle : @" 暂不更新 " otherButtonTitles : @" 跳过此版本 " , @" 更新 " , nil ]; [alert show ]; } } failure :^( NSURLSessionDataTask *task, NSError *error) { NSLog ( @"%@" , error); }]; } #pragma mark - UIAlertViewDelegate - ( void )alertView:( UIAlertView *)alertView clickedButtonAtIndex:( NSInteger )buttonIndex { switch (buttonIndex) { case 0 : break ; case 1 : [[ NSUserDefaults standardUserDefaults ] setObject : serverVersion forKey : @"ignoreAppVersion" ]; break ; case 2 : [[ UIApplication sharedApplication ] openURL :[ NSURL URLWithString : @"" ]]; break ; } }