优化版本检测

This commit is contained in:
monitor1394
2020-04-09 08:02:46 +08:00
parent 772701a549
commit b3e9e8833c
2 changed files with 53 additions and 20 deletions

View File

@@ -35,6 +35,7 @@ namespace XCharts
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
GUILayout.Label("最新版本:" + mgr.newVersion); GUILayout.Label("最新版本:" + mgr.newVersion);
if (mgr.isCheck) GUILayout.Label("检测中..."); if (mgr.isCheck) GUILayout.Label("检测中...");
else if (mgr.isNetworkError) GUILayout.Label("检测失败:" + mgr.networkError);
else GUILayout.Label("有更新!"); else GUILayout.Label("有更新!");
if (GUILayout.Button("去Github主页")) if (GUILayout.Button("去Github主页"))
{ {
@@ -56,22 +57,27 @@ namespace XCharts
else else
{ {
if (mgr.isCheck) GUILayout.Label("最新版本:检测中..."); if (mgr.isCheck) GUILayout.Label("最新版本:检测中...");
else if (mgr.isNetworkError) GUILayout.Label("检测失败:" + mgr.networkError);
else GUILayout.Label("最新版本:" + mgr.newVersion); else GUILayout.Label("最新版本:" + mgr.newVersion);
if (!mgr.needUpdate && !mgr.isCheck) GUILayout.Label("");
if (!mgr.isNetworkError && !mgr.needUpdate && !mgr.isCheck)
{ {
GUILayout.Label("");
GUILayout.Label("已是最新版本!"); GUILayout.Label("已是最新版本!");
}
GUILayout.Label("");
if (!string.IsNullOrEmpty(mgr.desc))
{
GUILayout.Label(mgr.desc);
GUILayout.Label(""); GUILayout.Label("");
if (!string.IsNullOrEmpty(mgr.desc)) }
{ if (GUILayout.Button("去Github主页"))
GUILayout.Label(mgr.desc); {
GUILayout.Label(""); Application.OpenURL(mgr.homepage);
} }
if (GUILayout.Button("去Github主页")) if (mgr.isNetworkError && GUILayout.Button("重新检测"))
{ {
Application.OpenURL(mgr.homepage); XChartsMgr.Instance.CheckVersion();
}
} }
} }
} }

View File

@@ -10,6 +10,7 @@ using System.Text;
using System.Collections; using System.Collections;
using UnityEngine; using UnityEngine;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using UnityEngine.Networking;
namespace XCharts namespace XCharts
{ {
@@ -78,6 +79,8 @@ namespace XCharts
public int newDate { get; private set; } public int newDate { get; private set; }
public int newCheckDate { get; private set; } public int newCheckDate { get; private set; }
public bool isCheck { get; private set; } public bool isCheck { get; private set; }
public bool isNetworkError { get; private set; }
public string networkError { get; private set; }
public bool needUpdate public bool needUpdate
{ {
@@ -90,6 +93,8 @@ namespace XCharts
public void CheckVersion() public void CheckVersion()
{ {
isCheck = true; isCheck = true;
isNetworkError = false;
networkError = "";
StartCoroutine(GetVersion()); StartCoroutine(GetVersion());
if (date < newCheckDate) if (date < newCheckDate)
{ {
@@ -100,13 +105,17 @@ namespace XCharts
IEnumerator GetVersion() IEnumerator GetVersion()
{ {
var url = "https://raw.githubusercontent.com/monitor1394/unity-ugui-XCharts/master/Assets/XCharts/version.json"; var url = "https://raw.githubusercontent.com/monitor1394/unity-ugui-XCharts/master/Assets/XCharts/version.json";
var web = new WWW(url); var web = UnityWebRequest.Get(url);
yield return web; yield return web;
if (!string.IsNullOrEmpty(web.error)) if (web.isNetworkError)
Debug.LogError(web.error);
else
{ {
var cv = JsonUtility.FromJson<XChartsVersion>(web.text); isNetworkError = true;
networkError = web.error;
m_NewVersion = "-";
}
else if (web.responseCode == 200)
{
var cv = JsonUtility.FromJson<XChartsVersion>(web.downloadHandler.text);
m_NewVersion = cv.version + " (" + cv.date + ")"; m_NewVersion = cv.version + " (" + cv.date + ")";
newDate = cv.date; newDate = cv.date;
newCheckDate = cv.checkdate; newCheckDate = cv.checkdate;
@@ -115,20 +124,38 @@ namespace XCharts
web.Dispose(); web.Dispose();
isCheck = false; isCheck = false;
} }
else
{
isCheck = false;
isNetworkError = true;
if (web.responseCode > 0)
networkError = web.responseCode.ToString();
else if (!string.IsNullOrEmpty(web.error))
networkError = web.error;
else
networkError = "-";
m_NewVersion = "-";
}
} }
IEnumerator GetChangeLog() IEnumerator GetChangeLog()
{ {
isCheck = true; isCheck = true;
var url = "https://raw.githubusercontent.com/monitor1394/unity-ugui-XCharts/master/Assets/XCharts/CHANGELOG.md"; var url = "https://raw.githubusercontent.com/monitor1394/unity-ugui-XCharts/master/Assets/XCharts/CHANGELOG.md";
var web = new WWW(url); var web = new UnityWebRequest(url);
yield return web; yield return web;
if (!string.IsNullOrEmpty(web.error)) if (!web.isNetworkError)
{
Debug.LogError(web.error); Debug.LogError(web.error);
}
else if (web.responseCode == 200)
{
CheckLog(web.downloadHandler.text);
web.Dispose();
isCheck = false;
}
else else
{ {
CheckLog(web.text);
web.Dispose();
isCheck = false; isCheck = false;
} }
} }