iOS ---------- 提示用户版本更新

由于改版之后应用中不能含有自动更新提示的样式,只能提示用户进行更新

App检测更新可以使用两种方法。第一种是和安卓等系统一样,获取自己服务器的App版本号与已安装的App版本号比较;第二种是根据已发布到App Store上的应用版本号与已安装的App版本号比较更新。第一种检测更新方法的优点是:检测更新速度快、检测稳定;缺点是:和App Store上的应用版本号不同步(App上架需要审核时间,不确定什么时候成功更新到App Store上)。第二种方法检测更新方法的优点是:检测版本号是实时同步的;缺点是:苹果网络不稳定,检测更新有点延时,部分App获取不到任何参数。


方法一:获取自己服务器版本号检查
1、通过网络请求获取服务器上的版本号;
2、调用上面的比较方法,比较前应用版本号和服务器上的版本号;
3、如果有版本更新则跳转到App Store上下载。

方法二:获取App Store上架版本号检查
1、通过网络同步请求获取App Store上对应APP ID的应用信息;
2、提取信息上的最新版本号等信息;
3、提取最新版本号;
4、调用上面的比较方法,比较前应用版本号和最新版本号;
5、如果有版本更新则跳转到App Store上下载。

             /**获取程序的版本号*/
NSString *version = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleVersion"];
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
[mgr.responseSerializer setAcceptableContentTypes: [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil]];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
//    dict[@"id"] = @"1073033949";//  上架的ID
dict[@"id"] = App_ID;// 你程序的apple ID号
[mgr POST:App_URL parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {// App_URL http://itunes.apple.com/lookup
    NSArray *array = responseObject[@"results"];
    if (array.count != 0) {// 先判断返回的数据是否为空   没上架的时候是空的
        NSDictionary *dict = array[0];
        self.dictM = dict;
        [array writeToFile:App_URLPath atomically:YES];// 这是我保存到本来了  后面的功能要使用
        if ([dict[@"version"] floatValue] > [version floatValue]) {//判断版本大小了
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新" message:@"有新的版本更新,是否前往更新?" delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:@"更新", nil] ;
            alert.delegate = self;
            [alert show];

        }
    }

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];

你可能感兴趣的:(小tip)