老项目没有加上版本更新提示的功能,新版的app需加上。一下是我写的版本更新的逻辑:如有版本更新提示,一天(24小时)只提醒一次(方法是记录上次更新的时间与当前的时间对比)。肯定更新跳转AppStore更新app,取消当天的更新直接进入系统。
app
(一)判断是否要更新
code
/** * 是否提示系统更新,判断的规则:一天内(24小时)只检测一次系统更新。(默认不提示更新) */ + (void)IsNeed2AppStore { __block BOOL Is2AppStore = NO; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *IsNotify = [defaults objectForKey:@"IsNotify"]; NSString *currentDateString = [self formatterDate:[NSDate date]]; //是否首次下载app if (IsNotify) { //是否已保存的更新时间为当天的时间 if ([IsNotify isEqualToString:currentDateString]) { [self changeUserDefaults:currentDateString Is2AppStore:NO]; }else { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager GET:kAppStoreUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { NSString *lastVersion = [[[responseObject valueForKey:@"results"] objectAtIndex:0] valueForKey:@"version"]; if (![kVersion isEqualToString:lastVersion]) { Is2AppStore = YES; } [self changeUserDefaults:currentDateString Is2AppStore:Is2AppStore]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { [self changeUserDefaults:currentDateString Is2AppStore:Is2AppStore]; }]; } }else { [self changeUserDefaults:currentDateString Is2AppStore:NO]; } } /** * 修改用户配置信息 */ + (void)changeUserDefaults:(NSString *)dateString Is2AppStore:(BOOL)Is2AppStore { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:dateString forKey:@"IsNotify"]; [defaults setBool:Is2AppStore forKey:@"Is2AppStore"]; [defaults synchronize]; }
(二)执行更新orm
//更新系统提示 - (void)showNotify { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; BOOL IsUpdate = [defaults boolForKey:@"Is2AppStore"]; //判断是否须要更新 if (IsUpdate) { [CommonTools showAlertWithUpdateMessage:@"系统有更新" delegate:self]; } } //一天内(24小时)只检测一次系统更新。(默认不提示更新) - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSString *dateString = [CommonTools formatterDate:[NSDate date]]; [CommonTools changeUserDefaults:dateString Is2AppStore:NO]; if (buttonIndex == 1) { //更新,跳转AppStore。 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kAppStoreScheme]]; } }