iOS版本更新提示

作者: 程序猿马国玺 | 来源:发表于2018-05-21 14:12 被阅读1417次

    iOS更新提示比较简单,不需要后台记录版本号,直接去App Store获取最新版本即可。

    NSString * url = [[NSString alloc] initWithFormat:@"http://itunes.apple.com/lookup?id=%@",AppID];//替换为自己App的ID
    // 获取本地版本号
    NSString * currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
    // 网络请求获取最新版本
    [[HttpBaseManager getSharedManager] GET:url parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            NSArray * results = responseObject[@"results"];
            if (results && results.count>0)
            {
                NSDictionary * dic = results.firstObject;
                NSString * lineVersion = dic[@"version"];//版本号
                NSString * releaseNotes = dic[@"releaseNotes"];//更新说明
                //NSString * trackViewUrl = dic[@"trackViewUrl"];//链接
                //把版本号转换成数值
                NSArray * array1 = [currentVersion componentsSeparatedByString:@"."];
                NSInteger currentVersionInt = 0;
                if (array1.count == 3)//默认版本号1.0.0类型
                {
                    currentVersionInt = [array1[0] integerValue]*100 + [array1[1] integerValue]*10 + [array1[2] integerValue];
                }
                NSArray * array2 = [lineVersion componentsSeparatedByString:@"."];
                NSInteger lineVersionInt = 0;
                if (array2.count == 3)
                {
                    lineVersionInt = [array2[0] integerValue]*100 + [array2[1] integerValue]*10 + [array2[2] integerValue];
                }
                if (lineVersionInt > currentVersionInt)//线上版本大于本地版本
                {
                    UIAlertController * alert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"发现新版本%@",lineVersion] message:releaseNotes preferredStyle:UIAlertControllerStyleAlert];
                    UIAlertAction * ok = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil];
                    UIAlertAction * update = [UIAlertAction actionWithTitle:@"去更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                        //跳转到App Store
                        NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/cn/app/id%@?mt=8",AppID];
                        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
                    }];
                    [alert addAction:ok];
                    [alert addAction:update];
                    [self presentViewController:alert animated:YES completion:nil];
                }
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"版本更新出错,%@",error.description);
        }];
    

    相关文章

      网友评论

      • Afunnyrainman:如果没有上架到appstore呢
        千年一梦s:@在路上_牛瑶 说明一下具体情况,第一次下载是从什么地方下载的?
        _阿牛_:@程序猿马国玺 开发阶段,还没有上架!!这个怎么处理呢??总不能第一次下载的人,有新版本没有提示吧
        程序猿马国玺:你都没上架,还要什么新版本提示
      • 阿杰的人生路:可以上架么?
        程序猿马国玺:这个上架不受影响,只是提示有新版本而已。
      • 千年一梦s:大神,有个问题,有个叫Harpy的三方库也是实现这个功能,这么简单的功能为什么有2000多星星
        刃之剑:因为 懒
        程序猿马国玺:抱歉,不知道

      本文标题:iOS版本更新提示

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