public void NoNetworkFunc() { DownManager.Instance.RemoveAndFinish(httpInfo.m_srcUrl); CancelDownload(); downResult = DownStatus.NoNetwork; downError = "没有网络"; DownloadFinish(); }
void ABProcessevent(double process, bool isFinish, DownStatus downResult = DownStatus.Sucess, string downError = "") { //AB包下载完成,解锁按键加载资源 if (isFinish) { ABStatus.text = "AB包准备完成"; LoadDataSet(); } }
void ABProcessevent(double process, bool isFinish, DownStatus downResult = DownStatus.Sucess, string downError = "") { //AB包下载完成,解锁按键加载资源 if (isFinish) { isABFinish = true; ABStatus.text = "AB包准备完成"; } }
/// <summary> /// 下载Assetbundleconfig文件回调 /// </summary> /// <param name="data"></param> /// <param name="downResult"></param> /// <param name="downError"></param> public void ABInit(byte[] data, DownStatus downResult = DownStatus.Sucess, string downError = "") { if (downResult != DownStatus.Sucess) { AFLogger.d("下载ABConfig文件失败:" + downError); return; } ABConfigInit(); IsABCheckFinish = true; //开始注册事件 ABCheckInitFinish.InvokeGracefully(versionStatus); }
//计算进度 public void ABDownCallBack(HttpInfo httpInfo, double process, bool isFinish, DownStatus downResult = DownStatus.Sucess, string downError = "") { if (downResult == DownStatus.Fail || downResult == DownStatus.NoNetwork) { mABDownInfo[httpInfo.ResClass].ABprocessevent.InvokeGracefully(mABDownInfo[httpInfo.ResClass].allprocess, false, downResult, downError); return; } if (isFinish) { RemoveDownload(httpInfo.ResClass, false, httpInfo.m_srcUrl); } mABDownInfo[httpInfo.ResClass].CalculateProcess(httpInfo.ResClass, httpInfo.ABName, process, isFinish); }
public void NetTextureEvent(Texture2D texture2D, string savePath, DownStatus downResult, string downError) { if (downResult == DownStatus.Sucess) { mResState = ResState.Ready; mAsset = CommonTool.TextureToSprite(texture2D) as Object; mListener.InvokeGracefully(true, this); } else { mResState = ResState.Waiting; mListener.InvokeGracefully(false, this); } FinishEvent.InvokeGracefully(mCRC); }
private void SendMsgHander(DownMsg msg) { DownStatus tag = msg.Tag; if (tag != DownStatus.End) { if (tag != DownStatus.Error) { return; } } else { Console.WriteLine(Complete); Complete++; return; } Failure++; }
/// <summary> /// 下载完成 /// </summary> public void DownloadComplete() { switch (downloadOperation.Status) { case DownloadStatus.Failed: //下载失败 LastPro = CurPro; if (WebRequestCount <= 3) { DownManager.Instance.DebugDownError(WebRequestCount, httpInfo.m_srcUrl, downloadOperation.Error); WebRequestCount += 1; CancelDownload(); BackgroundDownloadOptions backgroundDownloadOptions = new BackgroundDownloadOptions(httpInfo.m_srcUrl, m_saveFilePath); downloadOperation = BackgroundDownloads.StartDownload(backgroundDownloadOptions); } else { DownManager.Instance.RemoveAndFinish(httpInfo.m_srcUrl); CancelDownload(); downResult = DownStatus.Fail; downError = downloadOperation.Error; httpInfo.processEvent.InvokeGracefully(httpInfo, CurPro, true, downResult, downError); m_isStartDownload = false; DownloadFinish(); } break; case DownloadStatus.Successful: //下载成功 //AFLogger.d("下载完成:" + downloadOperation.DestinationPath); //AFLogger.d("下载完成后是否存在路径:" + m_saveFilePath + " " + FileHelper.JudgeFilePathExit(m_saveFilePath)); CurPro = 1; LastPro = CurPro; DownManager.Instance.RemoveAndFinish(httpInfo.m_srcUrl); downResult = DownStatus.Sucess; downError = ""; m_isStartDownload = false; DownloadFinish(); httpInfo.processEvent.InvokeGracefully(httpInfo, CurPro, true, downResult, downError); break; } }
public void ABMD5Callback(ABClassDownInfo ABDowninfo, DownStatus downResult = DownStatus.Sucess, string downError = "") { switch (downResult) { case DownStatus.Downloding: break; case DownStatus.Fail: MD5Text.text = "下载MD5文件失败,Error:" + downError; break; case DownStatus.NoNetwork: MD5Text.text = "没有网络,请检查!"; break; case DownStatus.Sucess: MD5Text.text = GetABStatusStr(ABDowninfo.aBState); break; } }
public void ABMD5Callback(ABClassDownInfo ABDowninfo, DownStatus downResult = DownStatus.Sucess, string downError = "") { switch (downResult) { case DownStatus.Downloding: break; case DownStatus.Fail: AFLogger.e("下载MD5文件失败,Error:" + downError); break; case DownStatus.NoNetwork: AFLogger.e("没有网络,请检查!"); break; case DownStatus.Sucess: break; } }
/// <summary> /// MD5检测回调 /// </summary> public void ABMD5ResultCallback(ABClassDownInfo ABDowninfo, DownStatus downResult, string downError) { //从保存下载的字典里移除 RemoveDownload(ABDowninfo.ResClass, true, ABDataHolder.Instance.GetMD5DownURL() + ABDowninfo.ResClass.ToString() + "Info.txt"); AddProductDownInfo(ABDowninfo); //回调MD5的结果,可根据结果进行处理 ABDowninfo.ABMD5Callback.InvokeGracefully(ABDowninfo, downResult, downError); if (downResult == DownStatus.Sucess) { //Debug.Log("MD5检测结果:" + ABDowninfo.aBState); //这里分成了产品AB包和普通AB包,如果产品AB包需要直接下载,可在ABMD5callback回调中自己实现 if (ABDowninfo.isHasRecog) { if (ABDowninfo.aBState != ABState.Newest) { //覆盖本地info.txt FileHelper.CreatFile(GetSavePathByClass(ABDowninfo.ResClass, false), System.Text.Encoding.UTF8.GetBytes(SerializeHelper.ToJson(ABDowninfo.newClassInfo)), true); } } else { //Debug.Log("不是识别AB包的下载"); if (ABDowninfo.aBState == ABState.Newest) { //覆盖本地info.txt FileHelper.CreatFile(GetSavePathByClass(ABDowninfo.ResClass, false), System.Text.Encoding.UTF8.GetBytes(SerializeHelper.ToJson(ABDowninfo.newClassInfo)), true); //没有需要热更的 mABDownInfo[ABDowninfo.ResClass].IsDownFinish = true; //下载完成 ABDowninfo.ABprocessevent.InvokeGracefully(1, true, DownStatus.Sucess, ""); } else { //计算大小并下载 DownClassAB(ABDowninfo.ResClass); } } } }
/// <summary> /// 版本文件下载回调 /// </summary> /// <param name="data"></param> /// <param name="downResult"></param> /// <param name="downError"></param> public void AppVersionCall(byte[] data, DownStatus downResult = DownStatus.Sucess, string downError = "") { if (downResult != DownStatus.Sucess) { AFLogger.e("下载Version文件未成功,请检查!"); return; } AppInfoConfig appInfoConfig = SerializeHelper.FromJson <AppInfoConfig>(System.Text.Encoding.UTF8.GetString(data)); double appV = 0; if (ABConfig.isDevelopOrOnlineAB) { appV = ABConfig.ABDevelopmentVersion; } else { appV = ABConfig.ABOnlineVersion; } if (appInfoConfig.AvailableABVersions.Contains(appV)) { if (appInfoConfig.NewABVersion.Contains(appV)) { versionStatus = APPVersionStatus.Newest; } else { versionStatus = APPVersionStatus.Update; } if (CheckABConfig()) { ABInit(default(byte[])); } } else { versionStatus = APPVersionStatus.Abandon; ABCheckInitFinish.InvokeGracefully(versionStatus); IsABCheckFinish = true; } }
public void StartWebRequest() { WebRequestCount = 1; if (string.IsNullOrEmpty(httpInfo.m_srcUrl)) { downResult = DownStatus.Fail; downError = "下载地址为空"; DownloadFinish(); return; } if (string.IsNullOrEmpty(httpInfo.m_savePath)) { downResult = DownStatus.Fail; downError = "保存地址为空"; DownloadFinish(); return; } m_saveFilePath = httpInfo.m_savePath; if (WebRequestCount == 1) { LastPro = GetProcess(); } FileHelper.DeleteFile(m_saveFilePath); downloadOperation = BackgroundDownloads.GetDownloadOperation(httpInfo.m_srcUrl); BackgroundDownloadOptions backgroundDownloadOptions = new BackgroundDownloadOptions(httpInfo.m_srcUrl, m_saveFilePath); if (downloadOperation == null || (downloadOperation != null && downloadOperation.Status != DownloadStatus.Paused)) { downloadOperation = BackgroundDownloads.StartDownload(backgroundDownloadOptions); } else if (downloadOperation != null && downloadOperation.Status == DownloadStatus.Paused) { //断点续存 downloadOperation = BackgroundDownloads.StartOrContinueDownload(backgroundDownloadOptions); } m_isStartDownload = true; }
private void ReFresh(DownStatus status, long size, long currentsize, Exception e) { switch (status) { case DownStatus.Downing: if (true) { var percent = 0; try { if (size > 0) { percent = (int)(((float)currentsize / (float)size) * 100); } if (percent > 100) { percent = 100; } } catch (Exception) { } var mconvert = new SizeConvert(); this.lblpercent.Text = string.Format("{0}/{1}", mconvert.GetSize(currentsize), mconvert.GetSize(size)); this.barstatus.Value = percent; } break; case DownStatus.Stop: if (true) { SetButtons(false); if (logTask != null) { logTask(string.Format("任务:{0}异常:{1},堆栈:{2}!", httpurl, e.Message, e.StackTrace)); } } break; case DownStatus.Complete: if (true) { var mconvert = new SizeConvert(); this.lblpercent.Text = string.Format("{0}/{1}", mconvert.GetSize(size), mconvert.GetSize(size)); this.barstatus.Value = 100; if (logTask != null) { logTask(string.Format("任务:{0}已完成!", httpurl)); //标记停止 down.Stop(); } SetButtons(false); } break; case DownStatus.Deleted: if (true) { var mconvert = new SizeConvert(); this.lblpercent.Text = string.Format("{0}/{1}", mconvert.GetSize(0), mconvert.GetSize(0)); if (logTask != null) { logTask(string.Format("任务:{0}临时文件已删除!", httpurl)); } } break; default: break; } }
private void Down_mReading(DownStatus status, long size, long currentsize, Exception e) { this.Invoke(new ReFreshHandler(ReFresh), status, size, currentsize, e); }
public void ABInit(byte[] data, DownStatus downResult, string downError) { //资源相关类进行初始化 ABDataHolder.Instance.LoadAssetManifest(); }
void ABProcessevent(double process, bool isFinish, DownStatus downResult = DownStatus.Sucess, string downError = "") { ABProcessText.text = process + ""; }