| Core/GameEngine/Login/Launch.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/ApkUpdateUrlConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/ApkUpdateUrlConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/ConfigManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/TelPartialConfig/ApkUpdateUrlConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/TelPartialConfig/ApkUpdateUrlConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/SDK/SDKUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ClientVersion/VersionUpdateWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ClientVersion/VersionUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Login/Launch.cs
@@ -77,6 +77,7 @@ SDKUtility.Instance.CopyOneAsset("config/HelpInfo.txt.7z"); SDKUtility.Instance.CopyOneAsset("config/PriorBundle.txt.7z"); SDKUtility.Instance.CopyOneAsset("config/PriorLanguage.txt.7z"); SDKUtility.Instance.CopyOneAsset("config/ApkUpdateUrl.txt.7z"); AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath); LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version); Core/GameEngine/Model/Config/ApkUpdateUrlConfig.cs
New file @@ -0,0 +1,44 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 21, 2018 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class ApkUpdateUrlConfig : ConfigBase { public string appid { get ; private set; } public int branch { get ; private set ; } public string url { get ; private set; } public override string getKey() { return appid.ToString(); } public override void Parse() { try { appid = rawContents[0].Trim(); branch=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; url = rawContents[2].Trim(); } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/ApkUpdateUrlConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 00d6c64e5ac1b3041baeaac6c354b2ba timeCreated: 1542780814 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -35,6 +35,7 @@ public void PreLoadConfigs() { StartSyncTask<ApkUpdateUrlConfig>(); StartSyncTask<PriorBundleConfig>(); StartSyncTask<PriorLanguageConfig>(); StartSyncTask<ContactConfig>(); Core/GameEngine/Model/TelPartialConfig/ApkUpdateUrlConfig.cs
New file @@ -0,0 +1,36 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TableConfig { public partial class ApkUpdateUrlConfig : ConfigBase, IConfigPostProcess { static Dictionary<string, Dictionary<int, ApkUpdateUrlConfig>> configs = new Dictionary<string, Dictionary<int, ApkUpdateUrlConfig>>(); public void OnConfigParseCompleted() { if (!configs.ContainsKey(this.appid)) { configs[this.appid] = new Dictionary<int, ApkUpdateUrlConfig>(); } configs[this.appid][this.branch] = this; } public static ApkUpdateUrlConfig Get(string appId, int branch) { if (configs.ContainsKey(appId) && configs[appId].ContainsKey(branch)) { return configs[appId][branch]; } else { return null; } } } } Core/GameEngine/Model/TelPartialConfig/ApkUpdateUrlConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 68ca325799263d647b31cb23a12863ba timeCreated: 1542781008 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/SDK/SDKUtility.cs
@@ -262,6 +262,11 @@ #endif } public string GetPackageFlag() { return string.Empty; } #endregion #region 处理与SDK交互的底层方法 System/ClientVersion/VersionUpdateWin.cs
@@ -100,7 +100,7 @@ m_ProgressSlider.value = VersionUtility.Instance.progress; var downLoadedSize = ((float)RemoteFile.TotalDownloadedSize / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1"); var totalSize = ((float)VersionUtility.Instance.versionInfo.GetLatestVersion().file_size * 1024 / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1"); var totalSize = ((float)VersionUtility.Instance.GetApkSize() * 1024 / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1"); m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSize, "M", "/", totalSize, "M")); @@ -128,7 +128,7 @@ case VersionUtility.Step.DownLoadPrepared: if (Application.platform == RuntimePlatform.Android) { var totalSize = VersionUtility.Instance.versionInfo.GetLatestVersion().file_size; var totalSize = VersionUtility.Instance.GetApkSize(); var sizeDescription = ((float)totalSize / DownLoadAndDiscompressTask.BYTE_PER_KILOBYTE).ToString("f1"); switch (Application.internetReachability) { System/ClientVersion/VersionUtility.cs
@@ -11,24 +11,26 @@ using System.IO; using Snxxz.UI; using System.Text; using TableConfig; [XLua.LuaCallCSharp] public class VersionUtility : Singleton<VersionUtility> { public static readonly string[] VERSION_URL = new string[] { "http://pub.game.2460web.com:11000/appversion/?" , "http://111.230.234.252:11000/appversion/?"}; const string VERSION_URL_PURE = "http://111.230.234.252:11000/purge/appversion/?"; public static readonly string[] VERSION_URL = new string[] { "http://pub.game.2460web.com:11000/appversion/?" , "http://111.230.234.252:11000/appversion/?"}; public string androidRoot { get { return StringUtility.Contact(SDKUtility.Instance.DeviceRootPath, "/", VersionConfig.Get().bundleIdentifier); } } public float progress { get { return RemoteFile.TotalDownloadedSize / ((float)versionInfo.GetLatestVersion().file_size * 1024); } get { return RemoteFile.TotalDownloadedSize / ((float)GetApkSize() * 1024); } } public VersionInfo versionInfo { get; private set; } public JsonData maoerVersion; Dictionary<string, ApkDownUrl> apkDownUrls = new Dictionary<string, ApkDownUrl>(); public bool completed { get { return step == Step.Completed; } } Step m_Step = Step.None; @@ -72,27 +74,13 @@ versionInfo = JsonMapper.ToObject<VersionInfo>(_result); if (NeedNormalUpdate()) { switch (Application.platform) if (Application.isMobilePlatform) { case RuntimePlatform.Android: if (File.Exists(GetApkLocalUrl())) { step = Step.ApkExist; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); } else { step = Step.DownLoadPrepared; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); } break; case RuntimePlatform.IPhonePlayer: step = Step.DownLoadPrepared; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); break; default: step = Step.Completed; break; RequestApkDownConfigs(); } else { step = Step.Completed; } } else @@ -110,6 +98,53 @@ { step = Step.None; Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck); } } public void RequestApkDownConfigs() { var config = ApkUpdateUrlConfig.Get(VersionConfig.Get().appId, VersionConfig.Get().branch); HttpRequest.Instance.RequestHttpGet(config.url, HttpRequest.defaultHttpContentType, 1, OnGetApkDownConfigs); } private void OnGetApkDownConfigs(bool _ok, string _result) { if (_ok) { var lines = _result.Split(new string[] { FileExtersion.lineSplit }, StringSplitOptions.RemoveEmptyEntries); apkDownUrls.Clear(); for (int i = 0; i < lines.Length; i++) { var apkDownUrl = new ApkDownUrl(lines[i]); apkDownUrls[apkDownUrl.flag] = apkDownUrl; } switch (Application.platform) { case RuntimePlatform.Android: if (File.Exists(GetApkLocalUrl())) { step = Step.ApkExist; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); } else { step = Step.DownLoadPrepared; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); } break; case RuntimePlatform.IPhonePlayer: step = Step.DownLoadPrepared; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); break; default: step = Step.Completed; break; } } else { Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestApkDownConfigs); } } @@ -171,8 +206,40 @@ } else { var version = versionInfo.GetLatestVersion(); return version.download_url; var flag = SDKUtility.Instance.GetPackageFlag(); if (apkDownUrls.ContainsKey(flag)) { return apkDownUrls[flag].url; } else { return string.Empty; } } } public int GetApkSize() { if (versionInfo == null) { return 0; } if (IsMaoErGame()) { return versionInfo.GetLatestVersion().file_size; } else { var flag = SDKUtility.Instance.GetPackageFlag(); if (apkDownUrls.ContainsKey(flag)) { return apkDownUrls[flag].size; } else { return 0; } } } @@ -400,7 +467,6 @@ { public int is_fullpackage; public int file_size; public string download_url; public string version_desc; public DateTime public_time; public int update_force; @@ -415,6 +481,22 @@ public string url; } public struct ApkDownUrl { public string flag; public string url; public int size; public ApkDownUrl(string content) { var strings = content.Split('\t'); flag = strings[0]; url = strings[1]; int.TryParse(strings[2], out size); } } public enum Step { None,