dezhou_client/wb_unity_pro/Assets/Scripts/VerCheck.cs

527 lines
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using UnityEngine;
using System.Collections;
using System.IO;
using MiniJSON;
using taurus.unity;
using System;
using UnityEngine.UI;
public class VerCheck : MonoBehaviour
{
public static VerCheck Instance { get; private set; }
public securityConnection conn;
public bool isGFF = false;
public bool isDXYGFF = true;
void Awake()
{
Instance = this;
}
// Use this for initialization
void Start()
{
GameApplication.Instance.isAndroid64bit = IsAndroid64bit();
CreateVersionView();
StartCoroutine(CheckNet());
}
internal void ResetGame()
{
CreateVersionView();
StartCoroutine(__WaitReset());
}
IEnumerator __WaitReset()
{
var _luaClient = GameApplication.Instance.GetComponent<DSLuaClient>();
UnityEngine.Object.Destroy(_luaClient);
System.GC.Collect();
ResourcesManager.DestroyAll();
CreateVersionView();
yield return null;
StartCoroutine(CheckNet());
}
void CreateVersionView()
{
ResourcesManager.ReadAssetConfig("base/embed");
Debug.LogError(Application.persistentDataPath);
}
public bool IsAndroid64bit()
{
#if UNITY_ANDROID && !UNITY_EDITOR
if (IntPtr.Size == 8)
{
return true;
}
return false;
#else
return false;
#endif
}
IEnumerator CheckNet()
{
string json_data = string.Empty;
isDXYGFF = false;
isGFF = false;
//string init_url = "http://8.138.94.89:9898/NewFK/config/init2_1.json";
string init_url = "http://8.134.198.183:80/DZ/config/init.json";
if (isGFF == false && isDXYGFF == false)
{
}
else
{
if (isGFF)
{
int rc = AppVest.init("8ef91e7e799b5851a8ce810aae0c697c", "U5ayF4voVvRh1ElqBIVUCR9dSFskPGvCkfreFxdxzi39hoU0faqZWjFzC90Cta50egaQatCbPxm6XTlvi2+o++PrSozoZ+HUUY0y8tBloMWaOYQX59SAhjA/DyIDHJgGbE1I");
if (rc != 0)
{
// Debug.LogError("init failed");
ShowTip("GF init failed!", () =>
{
StartCoroutine(CheckNet());
});
}
// Debug.LogError("init successful");
conn.ip = "";
conn.port = 0;
int rc1 = AppVest.getServerIPAndPort(ref conn, "", 5021);
if (rc1 != 0)
{
ShowTip("getServerIPAndPort failed!", () =>
{
StartCoroutine(CheckNet());
});
yield break;
}
}
else
{
string key = "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";
int rc = DxyVest.Start(key);//AppVest.init("553c12676eb80b82183e0944df97cd19", "K8N/nk3cAxhGo7Oy0yoP/Ye5jcQUaMf+8+AutonLIoCXTbHXSHJ/D8W3/iIBHJq/4SABnAF7RvIeNRnF+x+wjB6cB1TEwIUviviQlofNvM4qJFLH55ON85n2pFBhSGW3qLF/");
if (rc != 150)
{
ShowTip("GF init failed!", () =>
{
StartCoroutine(CheckNet());
});
}
// Debug.LogError("init successful");
conn.ip = "127.0.0.1";
conn.port = 39898;
//int rc1 = AppVest.getServerIPAndPort(ref conn, "", 8077);
//if (rc1 != 0)
//{
// ShowTip("getServerIPAndPort failed!", () =>
// {
// StartCoroutine(CheckNet());
// });
// yield break;
//}
}
init_url = "http://" + conn.ip + ":" + conn.port + "/NewFKNB/config/init.json";
Debug.LogError("init_url : " + init_url);
}
// Debug.LogError("开始下载资源===>>>");
// Debug.LogError(init_url);
Debug.LogError("init_url============================ " + init_url);
float downTimeOut = 10;
using (WWW request1 = new WWW(init_url))
{
Debug.LogError("init_url============================ " + request1.url);
float timeOut = Time.time;
float process = request1.progress;
while (request1 != null && request1.isDone == false)
{
if (process < request1.progress)
{
timeOut = Time.time;
process = request1.progress;
}
if (Time.time - timeOut > downTimeOut)
{
ShowTip("资源配置下载失败2请检查您的网络设置!", () =>
{
StartCoroutine(CheckNet());
});
yield break;
}
yield return null;
}
yield return request1;
Debug.LogError("request1.error" + request1.error);
if (string.IsNullOrEmpty(request1.error))
{
json_data = request1.text;
//优化
GameApplication.Instance.GameInfo = json_data;
Hashtable json = Json.Deserialize(json_data) as Hashtable;
//json["pack_url"] = "http://8.134.59.224:8909/NewFKtest";
Hotupdate.PackUrl = (string)json["pack_url"];
Hashtable _plat_data = null;
#if UNITY_IPHONE
_plat_data = json["iOS"] as Hashtable;
#endif
#if UNITY_ANDROID
_plat_data = json["Android"] as Hashtable;
#endif
#if UNITY_STANDALONE
_plat_data = json["Win"] as Hashtable;
#endif
var check = _plat_data[string.Format("check{0}", GameApplication.AppVersion.ToString())];
if (check != null && (bool)check)
{
GameApplication.HideSdk = true;
GameApplication.Instance.accountTest = false;
}
Version server_version = new Version((string)_plat_data["version"]);
if (!GameApplication.HideSdk)
{
if (GameApplication.AppVersion.max_version < server_version.max_version || (GameApplication.AppVersion.max_version == server_version.max_version && GameApplication.AppVersion.min_version < server_version.min_version))
{
ShowTip("您版本需要更新!", () =>
{
#if UNITY_ANDROID
StartCoroutine(DownApp((string)_plat_data["appurl"], server_version.ToString()));
#else
DeleteOldPack();
Application.OpenURL((string)_plat_data["appurl"]);
Application.Quit();
#endif
});
yield break;
}
}
Voice.VoiceUpload = json["voice_upload_url"] as string;
Voice.VoiceDownload = json["voice_download_url"] as string;
//GameApplication.PackVersion = server_version.pack_version;
if (!GameApplication.Instance.buildApp)
{
GameApplication.AppVersion.FillData(server_version);
GameApplication.Instance.StartGame();
}
else
{
StartCoroutine(CheckAssetConfig(server_version));
}
}
else
{
ShowTip("资源配置下载失败,请检查您的网络设置!", () =>
{
StartCoroutine(CheckNet());
});
//yield break;
}
}
}
IEnumerator CheckAssetConfig(Version server_version)
{
Version local_version = Hotupdate.GetLocalVersion(string.Empty);
ArrayList asset_config_list = null;
string asset_config_text = null;
if (local_version == null || local_version.ContainAll(server_version))
{
string ac_url = "";
if (isGFF == false)
ac_url = string.Format("{0}/config/asset_config{1}.json", Hotupdate.PackUrl, server_version.ToString());
else
ac_url = string.Format("http://{0}/NewFKNB/config/asset_config{1}.json", conn.ip + ":" + conn.port, server_version.ToString());
// Debugger.LogError("CheckAssetConfig===>>>");
// Debugger.LogError(ac_url);
float downTimeOut = 5;
using (var request = new WWW(ac_url))
{
float timeOut = Time.time;
float process = request.progress;
while (request != null && request.isDone == false)
{
if (process < request.progress)
{
timeOut = Time.time;
process = request.progress;
}
if (Time.time - timeOut > downTimeOut)
{
ShowTip("游戏配置下载异常,请检查您的网络设置!", () =>
{
StartCoroutine(CheckNet());
});
yield break;
}
yield return null;
}
yield return request;
if (string.IsNullOrEmpty(request.error))
{
asset_config_text = request.text;
asset_config_list = Json.Deserialize(asset_config_text) as ArrayList;
if (asset_config_list == null)
{
ShowTip("游戏配置下载异常,请检查您的网络设置!", () =>
{
StartCoroutine(CheckAssetConfig(server_version));
});
yield break;
}
//
ViewLoading.inst.textUpdate.text = "正在检查资源。。。";
bool ver_check = false;
StartCoroutine(VersionUpdateCheck(asset_config_list, (progress, finish) =>
{
ViewLoading.inst.bar.size = progress * 100f;
ver_check = finish;
}));
while (!ver_check)
{
yield return null;
}
string arv = string.Format("{0}asset_config{1}.json", ResourcesManager.PACK_PATH, server_version.ToString());
File.WriteAllText(arv, asset_config_text, System.Text.Encoding.UTF8);
string rv = ResourcesManager.PACK_PATH + "version.txt";
File.WriteAllText(rv, server_version.ToString(), System.Text.Encoding.UTF8);
}
else
{
ShowTip("游戏资源下载失败,请检查您的网络设置!", () =>
{
StartCoroutine(CheckAssetConfig(server_version));
});
yield break;
}
}
}
else
{
// string arv = string.Format("{0}asset_config{1}.json", ResourcesManager.PACK_PATH, server_version.ToString());
string arv = ResourcesManager.PACK_PATH + "asset_config" + server_version.ToString() + ".json";
//Debug.LogError("ARV===>>>" + arv);
try
{
asset_config_text = File.ReadAllText(arv);
asset_config_list = Json.Deserialize(asset_config_text) as ArrayList;
foreach (Hashtable tem in asset_config_list)
{
string b_path = "base/" + tem["name"];
ResourcesManager.ReadAssetConfig(b_path);
}
}
catch (Exception s)
{
Debug.LogError(s.ToString());
ShowTip("游戏资源损坏,请重新安装新包!", () =>
{
StartCoroutine(CheckAssetConfig(server_version));
});
yield break;
}
//IEnumerator enumerator = asset_config_list.GetEnumerator();
//try
//{
// while (enumerator!=null && enumerator.MoveNext())
// {
// Hashtable hashtable = (Hashtable)enumerator.Current;
// string base_path = "base/" + hashtable["name"].ToString();
// ResourcesManager.ReadAssetConfig(base_path);
// yield return null;
// }
//}
//finally
//{
// IDisposable disposable;
// if ((disposable = (enumerator as IDisposable)) != null)
// {
// disposable.Dispose();
// }
//}
}
GameApplication.AppVersion.FillData(server_version);
ViewLoading.inst.textUpdate.text = "正在加载资源请稍后。。";
//ResourcesManager.Init();
yield return null;
GameApplication.Instance.StartGame();
}
/// <summary>
/// 检查基本更新包
/// </summary>
/// <param name="asset_config_list"></param>
/// <param name="onback"></param>
/// <param name="tip"></param>
/// <returns></returns>
IEnumerator VersionUpdateCheck(ArrayList asset_config_list, System.Action<float, bool> onback)
{
Version local_version = Version.DEFUALT;
for (int i = 0; i < asset_config_list.Count; ++i)
{
var tem = asset_config_list[i] as Hashtable;
//if (GameApplication.HideSdk)
//{
// if (!tem.ContainsKey("check")) continue;
// if (!(bool)tem["check"]) continue;
//}
string b_path = "base/" + tem["name"].ToString();
Hotupdate version_update = new Hotupdate(b_path + "/", local_version, new Version((string)tem["ver"]));
version_update.AssetName = b_path;
version_update.HideDetail = true;
#if UNITY_ANDROID && !UNITY_EDITOR
//if (GameApplication.Instance.isAndroid64bit==false)
//{
// if (tem["name"].ToString()=="base_script")
// {
// version_update.isBuild32lua = true;
// }
//}
#endif
version_update.SetTipCallback((text, callback) =>
{
ShowTip(text, callback);
});
version_update.LoadAsset();
while (!version_update.Done)
{
onback(version_update.Progress, false);
ViewLoading.inst.textUpdate.text = version_update.TextTip;
yield return null;
}
ResourcesManager.ReadAssetConfig(b_path);
}
onback(1, true);
}
#if UNITY_ANDROID
IEnumerator DownApp(string appurl, string version)
{
ViewLoading.inst.textUpdate.text = "正在下载新的安装包(0KB/0KB)";
var request = new BestHTTP.HTTPRequest(new System.Uri(appurl));
request.EnableTimoutForStreaming = false;
request.UseStreaming = true;
request.IsKeepAlive = true;
request.Send();
var filePath = Application.persistentDataPath + "/update" + version + ".apk";
if (File.Exists(filePath))
{
File.Delete(filePath);
}
FileStream stream = null;
request.OnProgress = (originalRequest, downloaded, downloadLength) =>
{
ViewLoading.inst.textUpdate.text = string.Format("正在下载新的安装包({0}KB/{1}KB)", downloaded / 1024, downloadLength / 1024);
ViewLoading.inst.bar.size = (downloaded / (float)downloadLength) * 100;
var fragments = originalRequest.Response.GetStreamedFragments();
if (fragments != null)
{
if (stream == null)
{
stream = File.Create(filePath);
}
foreach (byte[] buffer in fragments)
{
stream.Write(buffer, 0, buffer.Length);
}
}
};
while (request.State < BestHTTP.HTTPRequestStates.Finished)
{
yield return null;
}
yield return new WaitForSeconds(1);
stream.Dispose();
request.OnProgress = null;
if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess)
{
DeleteOldPack();
PlatformAndroid.Instance.UpdateApp(filePath);
}
else
{
ShowTip("请检查您的网络设置!", () =>
{
StartCoroutine(DownApp(appurl, version));
});
}
}
#endif
public void ShowTip(string text, System.Action callback)
{
//var ctr_state = _version_view.GetController("state");
//ctr_state.selectedIndex = 1;
ViewLoading.inst.textLoad.text = text;
ViewLoading.inst.btnUpdate.onClick.AddListener(() =>
{
//ctr_state.selectedIndex = 0;
if (callback != null) callback();
});
}
/// <summary>
/// 移除本地缓存包
/// </summary>
public static void DeleteOldPack()
{
string dir = ResourcesManager.RES_PATH;
string rv = dir + "version.txt";
if (File.Exists(rv)) File.Delete(rv);
if (Directory.Exists(dir)) Directory.Delete(dir, true);
}
}