private void Start() { //前端显示资源路径 textUrl1.text = "URL1:\n" + url1; DownloadMgr.Init(); }
//启动前,请先调用RegisterRequsetCallback注册回调 public void StartCheck() { downloadMgr = DownloadMgr.Instance; fileVersionMgr = FileVersionMgr.Instance; fileVersionMgr.Init(); if (HotFixCallback == null) { Debug.LogError("Null Error is _currentState"); return; } clientVersion = new VersionCode(); serverVersion = new VersionCode(); #if UNIRY_EDITOR //编辑器状态,不热更 Finished(); #else ReadLocalVersion(); #endif }
private void DownloadOneFile() { if (DownloadResInfoQueue.Count <= 0) { //全部下载完成 SetState(DownloadResState.saveResInfoList2DownloadingFoler); return; } else { float downloadProgress = (1f - DownloadResInfoQueue.Count / DownloadFileNum) * 0.9f;//下载从0-0.9f Messenger.Broadcast <float>("updateLoadingProgress", downloadProgress); Debug.LogError("真下载" + downloadProgress); } string resRelePath = DownloadResInfoQueue.Dequeue(); Utils.SB.Append(UpdateMgr.RemoteCdnUrl); Utils.SB.Append("/"); Utils.SB.Append(UnityUtil.CurPlatform); Utils.SB.Append(resRelePath); string remotePath = Utils.SB.ToString(); Utils.ClearSB(); Utils.SB.Append(UnityUtil.PersistentPath); Utils.SB.Append(DownloadCachePath); Utils.SB.Append(resRelePath); string savePath = Utils.SB.ToString(); string saveFolderPath = FileHelper.GetDirectorName(savePath); FileHelper.CreateFolder(saveFolderPath); Utils.ClearSB(); Action onSuccess = () => { LogMgr.I("DownloadRes", "DownloadOneFile", "下载资源成功 remotePath:" + remotePath + " savePath:" + savePath, BeShowLog); //下载成功后启动下一次下载 DownloadOneFile(); }; Action <string> onFaile = (error) => { LogMgr.E("DownloadRes", "DownloadOneFile", "下载流程中断,下载资源失败 remotePath:" + remotePath + " savePath:" + savePath, BeShowLog); }; Action <int> onGetFileSize = (size) => { }; //单个资源的下载进度 Action <float> onProgress = (progress) => { }; LogMgr.I("DownloadRes", "DelayDown", "开始下载资源 remotePath:" + remotePath + " savePath:" + savePath + " 剩余待下载资源数:" + DownloadResInfoQueue.Count, BeShowLog); DownloadMgr.GetIns().StartDownload(remotePath, savePath, onSuccess, onFaile, onGetFileSize, onProgress); }
public static DownloadMgr GetInstance() { if (instance == null) { instance = new DownloadMgr(); } return(instance); }
private void LoadRemoteVersionData() { DownloadTask _tempTask = new DownloadTask(); _tempTask.Url = this.m_remoteUrl + m_versionTxtName; DownloadMgr.GetInstance().InitDownloadCallBacks(this.ParseRemoteVersionData, this.OneTaskProgressChanged, null); DownloadMgr.GetInstance().AsynDownLoadText(_tempTask); }
public void TestDownload(string url) { string[] URLStr = url1.Split('/'); string FileName = URLStr[URLStr.Length - 1]; string _savePath = Application.dataPath + "/../" + FileName; DownloadMgr.GetIns().StartDownload(url, _savePath, OnSuccess, OnFaile, Total, Progress1); }
public void UpdateHandler() { string startProcess = string.Empty; string folder = "HomotorDepotMgr"; if (D300SysUI.CheckNetworkStatus()) { List <string> fileList = DownloadMgr.GetDownloadFileList(folder); if (fileList.Count > 0) { //下载更新程序 for (int i = 0; i < fileList.Count; i++) { string curFullName = string.Empty; FileInfo newInfo = new FileInfo(fileList[i]); if (!newInfo.DirectoryName.Equals("\\")) { if (!Directory.Exists(GlobalShare.stratPath + newInfo.DirectoryName)) { Directory.CreateDirectory(GlobalShare.stratPath + newInfo.DirectoryName); } } curFullName = GlobalShare.stratPath + newInfo.FullName; if (Path.GetExtension(curFullName).Equals(".exe")) { startProcess = curFullName; } DownloadMgr.DownloadFile("/" + folder + newInfo.FullName.Replace("\\", "/"), curFullName); int percent = (int)(((i + 1) * 100) / fileList.Count); Console.WriteLine("应用程序已下载{0}%", percent); //this.Invoke(new EventHandler(delegate //{ // progressBar1.Value = percent; //})); } //找到更新程序的exe,并进行更新 SetAppProgramConfig(); Process.Start(startProcess, ""); //关闭当前程序 this.Close(); this.Dispose(); Application.Exit(); } else { //msgDialog.ShowMessage("更新失败,没有找到可更新的程序", 1); Console.WriteLine("更新失败,没有找到可更新的程序"); } } else { //msgDialog.ShowMessage("网络没有连接", 1); Console.WriteLine("网络没有连接"); } }
public void work() { DownloadMgr mgr = DownloadMgr.getInstance(); while (mgr.isActive) { if (!mgr.trigger()) { Thread.Sleep(3000); } } }
/// <summary> /// 资源清理 /// </summary> private void Dispose() { if (_updateList != null) { _updateList.Clear(); } //if (_completeList != null) // _completeList.Clear(); if (_downloadMgr != null) { _downloadMgr.Dispose(); } _downloadMgr = null; _unzipThread = null; }
public ResponseListModel <download> GetList(ReqDownEn en) { var reVal = new ResponseListModel <download>(); try { reVal = new DownloadMgr().GetList(en); } catch (Exception ex) { reVal.Success = false; reVal.Message = ex.Message; } return(reVal); }
/// <summary> /// 启动下载 /// </summary> private void StartDownload() { DownloadMgr.Init(); //过滤后的待下载资源存储到下载队列中,准备下载 foreach (var p in DownloadResInfoDic) { DownloadResInfoQueue.Enqueue(p.Key); } DownloadFileNum = DownloadResInfoQueue.Count; LogMgr.I("DownloadRes", "StartDownload", "启动下载 资源数:" + DownloadFileNum, BeShowLog); StartCoroutine("DelayDown"); }
/// <summary> /// 抛给下载器进行下载 /// </summary> private void PushDownloadTask() { DownloadTask firstTask = this.m_needDownloadTasks.Peek(); this.m_currTask = firstTask; firstTask.Url = this.m_remoteUrl + firstTask.FileName; //设置保存本地的目录 firstTask.FileName = this.m_localPath + firstTask.FileName; string path = Path.GetDirectoryName(firstTask.FileName); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } DownloadMgr.GetInstance().InitDownloadCallBacks(null, this.OneTaskProgressChanged, this.OneTaskFinished); DownloadMgr.GetInstance().AsynDownLoadFile(firstTask); }
//所有的下载任务都完成了 private void AllDownloadTaskFinished(bool updateVersionTxt) { Debug.Log("All Task Finish"); if (updateVersionTxt) { //替换本地的Version.txt为web服务器上的,保持版本最新 Util.CreateFile(this.m_localPath, m_versionTxtName, this.m_remoteVersionData); Debug.Log(m_versionTxtName + "已更新"); } this.m_localVersion = null; this.m_remoteVersion = null; this.m_remoteVersionData = null; //释放downloadmgr DownloadMgr.GetInstance().Dispose(); if (m_versionMgrCallback != null) { this.m_versionMgrCallback(); } }
public IEnumerator IStart(DownloadMgr mgr, string versionName, List <rRes> list, params object[] events) { mMgr = mgr; mVersionName = versionName; mDownloadList = list; mDownloadCount = 0; if (events != null) { mOnFinish = (Action <object>)events[0]; mOnUpdate = (Action <object[]>)events[1]; mOnError = (Action <object>)events[2]; } if (mTask != null) { mTask.Shutdown(); } LoadVersion(versionName); yield return(CoroutineMgr.Instance.StartCoroutine(mTask, IRun(versionName))); }
private void UpdateVersion() { if (_downloadMgr == null) { _downloadMgr = new DownloadMgr(FileUtils.LocalTempResRootPath, HotUpdateDefs.kBreakpointTransferInfoFile); } MainThreadRunner.Instance.StartCoroutine(VersionMgr.Instance.RequestVersionUpdateInfo(_projectManifestUrl, (string errorInfo) => { //if (RequestRemoteProjectManifestFailedHandler != null) // RequestRemoteProjectManifestFailedHandler(() => { UpdateVersion(); }); EventCenter.Broadcast <string, Action>((int)HotUpdateEventType.RequestRemoteProjectManifestFail, errorInfo, delegate { UpdateVersion(); }); }, () => { EventCenter.Broadcast((int)HotUpdateEventType.RequestRemoteProjectManifestSuccess); // 检查是否需要更新整包 if (!VersionMgr.Instance.IsPackageNew) { // 下载最新安装包 UpdatePackage(); } // 检查是否需要热更(本地主版本号不可能比服务器主版本号大) else if (VersionMgr.Instance.IsNeedHotUpdate) { // 热更资源 UpdateResource(); } else { CLogger.Log("GameUpdateMgr::UpdateVersion() - 已经是最新版本,不需要更新."); OnUpdateComplete(); // 版本相同,更新完毕 } })); }
public IEnumerator IStart(DownloadMgr mgr, string versionName, params object[] events) { yield return(CoroutineMgr.Instance.StartCoroutine(IStart(mgr, versionName, null, events))); }
public void Start(DownloadMgr mgr, string versionName, params object[] events) { Start(mgr, versionName, null, events); }
public GameUpdateMgr() { _downloadMgr = new DownloadMgr(FileUtils.LocalTempResRootPath, HotUpdateDefs.kBreakpointTransferInfoFile); }
public void StopDownload(string url) { DownloadMgr.GetIns().StopDownload(url); }
public ThreadDownloadBreakPoint(DownloadMgr mgr, DownloadTask task) { Mgr = mgr; Task = task; }
void OnDestroy() { Ins = null; }
void Awake() { Ins = this; }
void Awake() { _instance = this; }
public ThreadDownloadBreakPoint(DownloadMgr mgr, DownloadTask task) { this.Mgr = mgr; this.Task = task; }
public void Init(DownloadMgr mgr) { _mgr = mgr; }