From 44ff898f8d947bd8eb096f207486577981c4c8ff Mon Sep 17 00:00:00 2001 From: CaiYanPeng Date: Tue, 12 Oct 2021 20:07:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/AndroidUpdate.cs | 130 + Assets/AndroidUpdate.cs.meta | 11 + Assets/Plugins/Android/AndroidManifest.xml | 2 + .../Plugins/Android/ImageSelector-release.aar | Bin 18928 -> 19684 bytes .../Prefab/Panel/Mobile/AndroidUpdate.prefab | 669 +++++ .../Panel/Mobile/AndroidUpdate.prefab.meta | 7 + Assets/Scenes/Login-Mobile.unity | 2510 ++++++++--------- Assets/Scenes/Test.unity | 439 ++- Assets/Scripts/Apis/UserApi.cs | 5 +- .../Scripts/Mobile/LoginControllerMobile.cs | 47 + Assets/Scripts/Scenes/LoginController.cs | 33 +- Assets/Scripts/UIManager.cs | 14 + ProjectSettings/GraphicsSettings.asset | 1 + 13 files changed, 2468 insertions(+), 1400 deletions(-) create mode 100644 Assets/AndroidUpdate.cs create mode 100644 Assets/AndroidUpdate.cs.meta create mode 100644 Assets/Resources/UI/Prefab/Panel/Mobile/AndroidUpdate.prefab create mode 100644 Assets/Resources/UI/Prefab/Panel/Mobile/AndroidUpdate.prefab.meta diff --git a/Assets/AndroidUpdate.cs b/Assets/AndroidUpdate.cs new file mode 100644 index 00000000..1b22f8cc --- /dev/null +++ b/Assets/AndroidUpdate.cs @@ -0,0 +1,130 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEngine; +using UnityEngine.Networking; +using UnityEngine.UI; + +public class AndroidUpdate : PFUIPanel +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + JObject data { get; set; } + public void StartDownload(JObject jo) + { + transform.Find("Panel/CurrentVersion").GetComponent().text = $"Current Version: {App.AppVersion}"; + transform.Find("Panel/LastestVersion").GetComponent().text = $"Latest Version: {jo.Value("Version")}"; + data = jo; + var path = Application.temporaryCachePath + "/PowerFun.apk"; + StartCoroutine(DownLoadExe(data.Value("Url"), path, (p, isComplete) => + { + transform.Find("Panel/Size").GetComponent().text = $"Downloaded {Math.Round(p * 100, 0)}%";// string.Format(, a, b); + transform.Find("Panel/Progress").GetComponent().fillAmount = (float)p; + if (isComplete) + { + PlayerPrefs.SetString("exeVersion", data.Value("Version")); + new FileInfo(path + ".pfdownload").MoveTo(path); + OpenApk(path); + //Application.Quit(); + } + })); + } + + /*下载文件*/ + IEnumerator DownLoadExe(string url, string desFileName, Action OnDownloadProgressEvent) + { + string version = data.Value("Version"); + if (File.Exists(desFileName)) + { + //if(PlayerPrefs.GetString("exeVersion")==) + if (version == null) + { + yield break; + } + else + { + if (version == PlayerPrefs.GetString("exeVersion")) + { + OpenApk(desFileName); + //Application.Quit(); + yield break; + } + else + { + File.Delete(desFileName); + } + } + + //File.Delete(desFileName); + } + if (File.Exists(desFileName + ".pfdownload")) + { + File.Delete(desFileName + ".pfdownload"); + } + + using (var uwr = UnityWebRequest.Get(url)) + { + var operation = uwr.SendWebRequest(); + + while (!operation.isDone) + { + /* + * as BugFinder metnioned in the comments + * what you want to track is uwr.downloadProgress + */ + var downloadDataProgress = uwr.downloadProgress * 100; + + /* + * use a float division here + * I don't know what type downloadDataProgress is + * but if it is an int than you will always get + * an int division /100 = 0 + */ + //progressBar.fillAmount = downloadDataProgress / 100.0f; + OnDownloadProgressEvent.Invoke(uwr.downloadProgress, false); + Debug.Log("Download: " + downloadDataProgress); + yield return null; + } + ByteArrayToFile(desFileName + ".pfdownload", uwr.downloadHandler.data); + OnDownloadProgressEvent.Invoke(1, true); + } + } + bool ByteArrayToFile(string fileName, byte[] byteArray) + { + try + { + using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write)) + { + fs.Write(byteArray, 0, byteArray.Length); + return true; + } + } + catch (Exception ex) + { + Debug.LogError(ex); + return false; + } + } + + void OpenApk(string path) + { +#if !UNITY_EDITOR + AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + var activity = jc.GetStatic("currentActivity"); + //Debug.Log("打开apk"+ "file://" + path); + activity.Call("OpenApk", path); + Application.Quit(); +#endif + } +} diff --git a/Assets/AndroidUpdate.cs.meta b/Assets/AndroidUpdate.cs.meta new file mode 100644 index 00000000..7d63849f --- /dev/null +++ b/Assets/AndroidUpdate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef1001f46abd4064a9837992f252bb97 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/AndroidManifest.xml b/Assets/Plugins/Android/AndroidManifest.xml index 059959db..f09e24e9 100644 --- a/Assets/Plugins/Android/AndroidManifest.xml +++ b/Assets/Plugins/Android/AndroidManifest.xml @@ -20,6 +20,7 @@ android:launchMode="singleInstance" android:name="com.unityplugins.imageselector.SelectActivity"> + @@ -28,5 +29,6 @@ + \ No newline at end of file diff --git a/Assets/Plugins/Android/ImageSelector-release.aar b/Assets/Plugins/Android/ImageSelector-release.aar index a7452379415533dfe90d9e219daaed9c08d31983..c216e247a0a3c7f97cd3e6cdad11f455ecf2e539 100644 GIT binary patch delta 7158 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 sT1hkl`$?0KNkSgwN&o03gxwegFUf delta 6390 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"/Home/GetNotify"); } - + public async Task> GetVersions() + { + return await GetAsync>("/home/getversions"); + } public async Task> ResetPassword(string phone, string captcha, string newPwd) { return await PostAsync>("NoAuth/v1/ResetPassword", new {phone,captcha,newPwd }); diff --git a/Assets/Scripts/Mobile/LoginControllerMobile.cs b/Assets/Scripts/Mobile/LoginControllerMobile.cs index 3964f3c0..2859dd98 100644 --- a/Assets/Scripts/Mobile/LoginControllerMobile.cs +++ b/Assets/Scripts/Mobile/LoginControllerMobile.cs @@ -1,6 +1,7 @@ using Assets.Scripts; using Assets.Scripts.Mobile.Interface; using DG.Tweening; +using Newtonsoft.Json.Linq; using System; using System.Collections; using System.Collections.Generic; @@ -42,7 +43,53 @@ public class LoginControllerMobile : MonoBehaviour, INativeOnMobileWxLoginResp //App.weChatController.Init(App.WxAppId); //var s = App.weChatController.isApplicationAvilible("com.gugoumainapp","powerfun").ToString(); //Utils.showToast(null, SystemInfo.batteryLevel.ToString()); + CheckUpdate(); } + + private async void CheckUpdate() + { + var r = await ConfigHelper.userApi.GetVersions(); + if (r.result) + { + +#if UNITY_ANDROID + var info = r.data.Value("UnityApk"); + Debug.Log(info.Value("Version")); + if (info.Value("Version") != App.AppVersion) + { + transform.Find("Panel").gameObject.SetActive(false); + transform.Find("Version").gameObject.SetActive(false); + UIManager.ShowAndroidUpdate(info); + } +#elif UNITY_IOS + var info = r.data.Value("UnityIos"); + if (info.Value("Version") != App.AppVersion) + { + Application.OpenURL(info.Value("Url")); + } +#endif + } + //if (r.result) + //{ + // //#if !UNITY_EDITOR + // var ver = r.data.Value("Version").ToObject(); + // if (ver != null && ver.HasUpdate) + // { + // App.UpdateObject = ver; + // Debug.Log(Application.persistentDataPath + "/PowerFun.exe"); + // UIManager.ShowDownloadModal(); + // } + // //#endif + // App.notifyContent = r.data.Value("Content"); + + // if (r.data.Value("Id") != notifyId)//r.data.Value("Id") != notifyId + // { + // UIManager.ShowNewsModal(); + // PlayerPrefs.SetInt("notifyId", r.data.Value("Id")); + // } + //} + } + // Update is called once per frame void Update() { diff --git a/Assets/Scripts/Scenes/LoginController.cs b/Assets/Scripts/Scenes/LoginController.cs index 64128e6d..16cb671c 100644 --- a/Assets/Scripts/Scenes/LoginController.cs +++ b/Assets/Scripts/Scenes/LoginController.cs @@ -509,11 +509,12 @@ public class LoginController : BaseScene //Task.Run(async () => //{ -//}); -#if !(UNITY_ANDROID || UNITY_IOS) + //}); var r = await ConfigHelper.userApi.GetNotify(); + if (r.result) { +#if !(UNITY_ANDROID || UNITY_IOS) //#if !UNITY_EDITOR var ver = r.data.Value("Version").ToObject(); if (ver != null && ver.HasUpdate) @@ -530,10 +531,32 @@ public class LoginController : BaseScene UIManager.ShowNewsModal(); PlayerPrefs.SetInt("notifyId", r.data.Value("Id")); } - } -#endif - GetRotateImage(); +#else + var rr = await ConfigHelper.userApi.GetVersions(); + if (rr.result) + { + var info = rr.data.Value("UnityApk"); + if (info.Value("Url") != App.AppVersion) return; + } + var ver = r.data.Value("Version").ToObject(); + if (ver.UpdateLog.Count != notifyId) //ver.UpdateLog.Count != notifyId + { + var log = ver.UpdateLog.LastOrDefault(); + if (log != null) + { + App.notifyContent = log.Desc; + } + else + { + App.notifyContent = r.data.Value("Content"); + } + PlayerPrefs.SetInt("notifyId", ver.UpdateLog.Count); + UIManager.ShowNewsModal(); + } +#endif + } + GetRotateImage(); } async void GetRotateImage() diff --git a/Assets/Scripts/UIManager.cs b/Assets/Scripts/UIManager.cs index edc5e161..cb28f4ae 100644 --- a/Assets/Scripts/UIManager.cs +++ b/Assets/Scripts/UIManager.cs @@ -304,6 +304,20 @@ public class UIManager : MonoBehaviour UIManager.Show(UIManager.Instance.CountDownAnimation, null, true); UIManager.Instance.CountDownAnimation.StartTime(action,action2); } + //安卓下载页 + private AndroidUpdate mAndroidUpdate; + public AndroidUpdate AndroidUpdate + { + get + { + return this.GetPanelInstance("AndroidUpdate", ref this.mAndroidUpdate); + } + } + public static void ShowAndroidUpdate(JObject jo) + { + UIManager.Show(UIManager.Instance.AndroidUpdate, null, true); + UIManager.Instance.AndroidUpdate.StartDownload(jo); + } #region 比赛点击弹窗 private RaceModalScript mRaceModalScript; public RaceModalScript RaceDetailModal diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 4706883c..9b996cb4 100644 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -38,6 +38,7 @@ GraphicsSettings: - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}