示例#1
0
    /// <summary>
    /// 检测网络状况并对照版本信息是否一致
    /// </summary>
    /// <param name="AsynResult">版本信息是否一致的处理委托</param>
    /// <param name="OnError">错误处理委托</param>
    public void BeforeCheck(Action <bool> AsynResult, Action OnError)
    {
        CheckTimeout checkTimeout = new CheckTimeout();

        checkTimeout.AsynIsNetworkTimeout((success) =>
        {
            //如果网络良好,开始下载服务器版本xml
            if (success)
            {
                DownloadMgr.Instance.AsynDownLoadHtml(SystemConfig.GetCfgInfoUrlByName("version"),
                                                      (serverVersion) =>
                {
                    //如果本地存在服务端的版本信息文本,覆盖下载的服务器文本
                    if (File.Exists(SystemConfig.ServerVersionPath))
                    {
                        serverVersion = UnityTools.LoadFileText(SystemConfig.ServerVersionPath);
                    }
                    //将文本转换成版本信息类
                    ServerVersion        = GetVersionInXml(serverVersion);
                    bool programVersion  = ServerVersion.ProgramVersionCodeInfo.Compare(LocalVersion.ProgramVersionCodeInfo) > 0;
                    bool resourceVersion = ServerVersion.ResourceVersionCodeInfo.Compare(LocalVersion.ResourceVersionCodeInfo) > 0;
                    //执行是否更新的委托
                    AsynResult(programVersion || resourceVersion);
                }, OnError);
            }
            else
            {
                if (OnError != null)
                {
                    OnError();
                }
            }
        });
    }