美文网首页ios开发整理
iOS 强制版本更新

iOS 强制版本更新

作者: 打不死的小怪兽 | 来源:发表于2017-05-26 13:47 被阅读2278次

    版本强制进行更新

    NSString *url = UPDATEVERSION(@"0");
        [BaseRequest be_baseRequestModel:nil url:url finishBlock:^(id responseObject, NSError *error) {
            if ([responseObject[@"status"] integerValue] == 200) {
                if ([responseObject[@"data"] isKindOfClass:[NSDictionary class]]) {
                    NSDictionary *dataDic = responseObject[@"data"];
                    int backgroundVerison ;
                    if ([dataDic[@"version"] isKindOfClass:[NSNull class]]) {
                        backgroundVerison = 100;
                    }else {
                        //后台返回的版本号
                        backgroundVerison = [self versionExchangeType:dataDic[@"version"]];
                    }
                    //版本更新的url
                    _updateUrl = dataDic[@"url"];
                    //本地的版本号
                    int localVersion = [self versionExchangeType:[self getSystemVersion]];
                    //判断两个版本是否相同
                    if ( localVersion< backgroundVerison) {
                        NSLog(@"需要跳转去更新版本:%@",dataDic[@"version"]);
                        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"发现新版本" delegate:self cancelButtonTitle:@"更新" otherButtonTitles:nil, nil];
                        alertView.tag = 100;
                        [alertView show];
                    }else {
                        NSLog(@"无版本可更新。。");
                    }
                }
            }
        }];
    
    
    //获取当前设备中应用的版本号
    - (NSString *)getSystemVersion {
        NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
        NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
        return currentVersion;
    }
    
    //版本号去点
    - (int)versionExchangeType:(NSString *)version {
        
        //modify dingyouyou 2017-05-06
        NSArray * subArr = [version componentsSeparatedByString:@"."];
        if (subArr.count > 0) {
            NSString * value = @"";
            for (int i = 0; i< subArr.count;i++ ) {
                value = [value stringByAppendingString:subArr[i]];
            }
            return value.intValue;
        }else{
            return 0;
        }
    }
    
    强制更新需要在app将要进入前台的时候再一次,调用网络请求的方法
    - (void)applicationWillEnterForeground:(UIApplication *)application {
        // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
        //版本检测
        [self checkVerisonRequest];
    }
    

    相关文章

      网友评论

      • zcaaron:iOS 11 系统上好像有问题

      本文标题: iOS 强制版本更新

      本文链接:https://www.haomeiwen.com/subject/wcfxfxtx.html