iOS检测以及提示系统更新

老项目没有加上版本更新提示的功能,新版的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]];
    }
}
相关文章
相关标签/搜索