美文网首页
iOS开发笔记-78: swift4.0 app检测更新

iOS开发笔记-78: swift4.0 app检测更新

作者: 原味蛋炒饭 | 来源:发表于2018-06-14 09:43 被阅读43次
oc版本的检测更新
#pragma mark - 检测版本更新
- (void)updateApp
{

    NSString *appID;
    appID = @"1235965473";

    NSString *appUrl = @"http://itunes.apple.com/lookup?id=";
    NSString *urlStr = [NSString stringWithFormat:@"%@%@", appUrl, appID];

    JJHttpRequestManage *manage = [JJHttpRequestManage defaultManager];
    [manage GetUrl:urlStr parameters:nil succeessWithJsonResult:^(NSURLSessionDataTask *task, id responseObject) {
        JJLog(@"appstore data :%@",responseObject);

        NSArray *resultArray = [responseObject objectForKey:@"results"];

        if (![resultArray count]) {
            JJLog(@"error : resultArray == nil");
            return;
        }
        NSDictionary *infoDict = [resultArray objectAtIndex:0];
        //获取服务器上应用的最新版本号
        NSString *updateVersion = infoDict[@"version"];
        NSString *trackName = infoDict[@"trackName"];
        NSString *note = [infoDict objectForKey:@"releaseNotes"];

        _trackViewUrl = infoDict[@"trackViewUrl"];

        //获取当前设备中应用的版本号
        NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
        NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"] ;

        //判断两个版本是否相同
        if ([updateVersion compare:currentVersion options:NSNumericSearch] == NSOrderedDescending) {
            NSString *titleStr = [NSString stringWithFormat:@"检查更新:%@", trackName];

            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:titleStr message:note delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"升级", nil];

            alert.tag = 999;
            [alert show];
        }
    } failureConnectingNet:^(NSURLSessionDataTask *task, NSError *error) {
        JJLog(@"error :%@",error);

    }];
}
swift
 ///检查版本更新
    func checkAppUpdate() {
        
        APIRequest.getUserConfig(codes: "s_app_version_no_ios,u_app_download_ios,s_app_version_no_desc_ios") { (JSONData) in
            let data = JSONData as! JSON
            let version = data["s_app_version_no_ios"]["v"].stringValue
            let urlStr = data["u_app_download_ios"]["v"].stringValue
            let desc = data["s_app_version_no_desc_ios"]["v"].stringValue
            let localVer = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
            SessionManager.sharedInstance.downloadURL = urlStr
            if localVer.compare(version) == ComparisonResult.orderedAscending {
                //升级
                DispatchQueue.main.async {
                    let simpleHUD = UpdateVersionController(nibName: "UpdateVersionController", bundle: nil)
                    guard let vc = Toolkit.getCurrentViewController() else {
                        return
                    }
                    simpleHUD.modalPresentationStyle = .overCurrentContext
                    vc.present(simpleHUD, animated: false) {
                        simpleHUD.updateLabel.text = desc
                    }
                    simpleHUD.dismissHandler = {
                        if let url = URL(string: urlStr) {
                            UIApplication.shared.openURL(url)
                        }
                        
                    }
                }
            }
            
        }
        
    }

相关文章

网友评论

      本文标题:iOS开发笔记-78: swift4.0 app检测更新

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