From 97de31e9a015cf139f5293a22e1575a43dfb6733 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 24 四月 2026 14:16:02 +0800
Subject: [PATCH] WEBGL ANDROID适配

---
 Main/System/AssetVersion/DownloadHotMgr.cs |   54 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/Main/System/AssetVersion/DownloadHotMgr.cs b/Main/System/AssetVersion/DownloadHotMgr.cs
index 497331e..807f947 100644
--- a/Main/System/AssetVersion/DownloadHotMgr.cs
+++ b/Main/System/AssetVersion/DownloadHotMgr.cs
@@ -329,30 +329,41 @@
         this.state = TaskState.Working;
         FileExtersion.MakeSureDirectory(tempFile);
         Debug.LogFormat("寮�濮嬭幏鍙栧ご淇℃伅锛歿0}", remoteUrl);
-        using (var www = UnityWebRequest.Head(remoteUrl))
+        try
         {
-            www.timeout = DownloadHotMgr.TimeOut;
-            await www.SendWebRequest();
-            if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
+            using (var www = UnityWebRequest.Head(remoteUrl))
             {
-                Debug.LogErrorFormat("澶翠俊鎭幏鍙栧け璐ワ細{0}锛沞rror锛歿1}", remoteUrl, www.error);
-                requestHeaderOk = false;
-                SetFailed(www.error);
+                www.timeout = DownloadHotMgr.TimeOut;
+                await www.SendWebRequest();
+                if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
+                {
+                    Debug.LogErrorFormat("澶翠俊鎭幏鍙栧け璐ワ細{0}锛沞rror锛歿1}", remoteUrl, www.error);
+                    requestHeaderOk = false;
+                    SetFailed(www.error);
+                    www.Dispose();
+                    return;
+                }
+                long.TryParse(www.GetResponseHeader(HttpHeader.ContentLength), out this.remoteLength);
+                this.remoteLastModified = DateTime.Parse(www.GetResponseHeader(HttpHeader.LastModified));
+                var acceptRange = www.GetResponseHeader(HttpHeader.AcceptRanges);
+                this.isAcceptRange = acceptRange != "none";
+                Debug.LogFormat("澶翠俊鎭幏鍙栨垚鍔燂細{0}锛涘ぇ灏忥細{1}锛涗慨鏀规椂闂达細{2}锛涙槸鍚︽敮鎸佺画浼狅細{3}", remoteUrl, remoteLength, remoteLastModified, acceptRange);
+                requestHeaderOk = true;
+                state = TaskState.Wait;
                 www.Dispose();
-                await UniTask.CompletedTask;
             }
-            long.TryParse(www.GetResponseHeader(HttpHeader.ContentLength), out this.remoteLength);
-            this.remoteLastModified = DateTime.Parse(www.GetResponseHeader(HttpHeader.LastModified));
-            var acceptRange = www.GetResponseHeader(HttpHeader.AcceptRanges);
-            this.isAcceptRange = acceptRange != "none";
-            Debug.LogFormat("澶翠俊鎭幏鍙栨垚鍔燂細{0}锛涘ぇ灏忥細{1}锛涗慨鏀规椂闂达細{2}锛涙槸鍚︽敮鎸佺画浼狅細{3}", remoteUrl, remoteLength, remoteLastModified, acceptRange);
-            requestHeaderOk = true;
-            state = TaskState.Wait;
-            www.Dispose();
+        }
+        catch (Exception e)
+        {
+            Debug.LogError("[DownloadHotTask] Co_GetHeader 寮傚父\nURL: " + remoteUrl + "\nlocalFile: " + localFile + "\n閿欒: " + e.Message + "\n" + e.StackTrace);
+            requestHeaderOk = false;
+            SetFailed(e.Message);
         }
     }
     private async UniTask Co_DownloadFile()
     {
+        try
+        {
         state = TaskState.Working;
         while (TimeUtility.AllSeconds < beginTickCount + 5)//闄愬埗閲嶆柊涓嬭浇鐨勬椂闂撮棿闅�
         {
@@ -367,7 +378,7 @@
         if (!requestHeaderOk)//澶存枃浠惰幏鍙栧け璐�
         {
             onCompleted?.Invoke(this);
-            await UniTask.CompletedTask;
+            return;
         }
         try
         {
@@ -422,7 +433,7 @@
         Debug.LogFormat("涓嬭浇璇锋眰鑼冨洿锛歿0} 锛沚ytes={1}", remoteUrl, LocalLength);
         var localLength = LocalLength;
         this.downloadedBytes = localLength;
-        fileRequest.SendWebRequest();
+        _ = fileRequest.SendWebRequest();
         while (!fileRequest.isDone)
         {
             var length = localLength + (long)fileRequest.downloadedBytes;//鏈湴鏂囦欢澶у皬+鏈涓嬭浇鐨勬暟鎹ぇ灏�
@@ -470,6 +481,13 @@
             SetFailed("涓嬭浇瀹屾垚浣嗘槸鏂囦欢涓嶅瓨鍦�");
         }
         onCompleted?.Invoke(this);
+        }
+        catch (Exception e)
+        {
+            Debug.LogError("[DownloadHotTask] Co_DownloadFile 寮傚父\nURL: " + remoteUrl + "\nlocalFile: " + localFile + "\n閿欒: " + e.Message + "\n" + e.StackTrace);
+            SetFailed(e.Message);
+            onCompleted?.Invoke(this);
+        }
     }
 
     private async UniTask Move(string sourceFile, string destFile)

--
Gitblit v1.8.0