Exemplo n.º 1
0
 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();
     }
 }
Exemplo n.º 3
0
 void ABProcessevent(double process, bool isFinish, DownStatus downResult = DownStatus.Sucess, string downError = "")
 {
     //AB包下载完成,解锁按键加载资源
     if (isFinish)
     {
         isABFinish    = true;
         ABStatus.text = "AB包准备完成";
     }
 }
Exemplo n.º 4
0
 /// <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);
 }
Exemplo n.º 5
0
 //计算进度
 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);
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
        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++;
        }
Exemplo n.º 8
0
        /// <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;
            }
        }
Exemplo n.º 9
0
        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;
            }
        }
Exemplo n.º 10
0
        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;
            }
        }
Exemplo n.º 11
0
 /// <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);
             }
         }
     }
 }
Exemplo n.º 12
0
        /// <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;
            }
        }
Exemplo n.º 13
0
        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;
        }
Exemplo n.º 14
0
        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;
            }
        }
Exemplo n.º 15
0
 private void Down_mReading(DownStatus status, long size, long currentsize, Exception e)
 {
     this.Invoke(new ReFreshHandler(ReFresh), status, size, currentsize, e);
 }
Exemplo n.º 16
0
 public void ABInit(byte[] data, DownStatus downResult, string downError)
 {
     //资源相关类进行初始化
     ABDataHolder.Instance.LoadAssetManifest();
 }
Exemplo n.º 17
0
 void ABProcessevent(double process, bool isFinish, DownStatus downResult = DownStatus.Sucess, string downError = "")
 {
     ABProcessText.text = process + "";
 }