//获取服务器资源更新数据 public void GetUpdateInfo(Action <UpdateInfos> callBack = null, Action <string> errCallBack = null) { Header header = new Header(); header.headers = new List <HeaderData>(); header.headers.Add(new HeaderData() { key = "Gululu-Agent", value = GululuNetworkHelper.GetAgent() }); header.headers.Add(new HeaderData() { key = "udid", value = GululuNetworkHelper.GetUdid() }); header.headers.Add(new HeaderData() { key = "Accept-Language", value = GululuNetworkHelper.GetAcceptLang() }); header.headers.Add(new HeaderData() { key = "Content-Type", value = "application/json" }); string strHeader = this.JsonUtils.Json2String(header); UpdateRecord updateRecord = this.ReadUpdateRecord();//读取本地更新记录 UpdateRequest body = new UpdateRequest() { partner = AppInfo.Instance.Channel, apk_ver_code = AppInfo.Instance.VersionCode, res_ver_code = updateRecord != null ? updateRecord.ResVersionCode : 0//如果本地更新记录为空,资源版本号默认为0 }; string strBody = this.JsonUtils.Json2String(body); string url = this.UrlProvider.GetUpdateInfo(CupBuild.getCupSn()); Debug.LogFormat("<><HotUpdateUtils.GetUpdateInfo>Header: {0}, Body: {1}, Url: {2}", strHeader, strBody, url); mNativeOkHttpMethodWrapper.post(url, strHeader, strBody, (result) => { Debug.LogFormat("<><HotUpdateUtils.GetUpdateInfo>GotResponse: {0}", result); UpdateInfos updateInfos = this.JsonUtils.String2Json <UpdateInfos>(result); if (updateInfos != null && callBack != null) { this.SetNewsestVersion(updateInfos); callBack(updateInfos); } else if (errCallBack != null) { string errorText = "Response data 'updateInfo' is null"; Debug.LogErrorFormat("<><HotUpdateUtils.GetUpdateInfo>Invalid data error: {0}", errorText); errCallBack(errorText); } }, (errorResult) => { if (errorResult != null && errCallBack != null) { Debug.LogErrorFormat("<><HotUpdateUtils.GetUpdateInfo>Status error: {0}", errorResult.ErrorInfo); errCallBack(errorResult.ErrorInfo); } }); }
//记录最新版本 private void SetNewsestVersion(UpdateInfos updateInfos) { if (updateInfos != null && updateInfos.res_list != null) { List <UpdateInfo> updateInfoList = updateInfos.res_list.OrderByDescending(t => t.res_ver_code).ToList();//按照资源版本号倒叙排列历次更新数据 foreach (var updateInfo in updateInfoList) { if (updateInfo.apk_ver_code <= AppInfo.Instance.VersionCode) { Debug.LogFormat("<><HotUpdateUtils.SetNewsestVersion>apk_ver: {0}, apk_ver_code: {1}, res_ver_code: {2}", updateInfo.apk_ver, updateInfo.apk_ver_code, updateInfo.res_ver_code); this.newestVersion = updateInfo; break; } } } }