关于版本强制升级与非强制升级

在项目实际开发工程中,开发阶段需要不断的做内部更新,修复测试出现的问题

//项目成功上架后类似开发阶段uat环境下的版本迭代问题

//内部版本更新使用的方法

-(void)requestversion

{

     //内部版本  build

    NSString * currentVersion = [[[NSBundle mainBundle]infoDictionary]objectForKey:@"CFBundleVersion"];

   //外部版本  跟用户展现的版本

    NSString *softVersion=[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

    NSDictionary  *body=@{

                          @"clientVersion":currentVersion,

                          @"clientPlat":@"0"};

//调用版本检测网络接口进行检测版本更新

    [HttpRequest requestWithPath:[ServiceAPI withLast:versionCheck] WithJson:body block:^(id responseObject, NSError *error) {

        

        if (!error) {

            NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];

            if ([JSON isKindOfClass:[NSNull class]] || !JSON){

                return ;

            }

            NSString *yesOrNo= [JSON objectForKey:@"forced"];//是否强制更新

            NSString *serversion = [JSON objectForKey:@"serverVersion"];//当前服务器的版本

            NSString *url = [JSON objectForKey:@"url"];   //下载最新版本的连接

            NSString *version = [NSString stringWithFormat:@"请升级到最新版本%@",softVersion];

            if(serversion.length > 0 && [serversion integerValue]>[currentVersion integerValue] && [yesOrNo isEqualToString:@"1"])

            {

                //强制升级  根据项目需求自己定义

              在这里可以弹出alert,或者自己定义封装自己的弹框控件

                 在代理方法中执行升级版本 

                }];

            }else if (serversion.length > 0 && [serversion integerValue]>[currentVersion integerValue] && [force isEqualToString:@"0"]){

                //可以暂不升级

         

            }

            else if (serversion.length > 0 && [serversion integerValue]==[currentVersion integerValue]){

                //在这里可以用MBProgress弹出一个弹框

              当前已是最新版本

            }

        }

        

    }];

       

}

//UIAlertViewDelegate的方法这里就不写了

根据下标值进行更新

 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];//打开网络连接安装最新版本

  exit(0);//退出应用,自动安装  走进度 安装完成最新版本  就可以顺畅体验了

 

//   共         勉   

posted @ 2017-03-01 10:34  tryFighting  阅读(1004)  评论(0编辑  收藏  举报