示例#1
0
        //下载完成
        private async void DownloadComplete()
        {
            DownloadTxtFile.Save();

            if (_downloads.Count > 0)
            {
                for (int i = 0; i < _downloads.Count; i++)
                {
                    var item = _downloads[i];
                    if (!item.isDone)
                    {
                        break;
                    }
                    else
                    {
                        if (_serverVersions.ContainsKey(item.path))
                        {
                            _versions[item.path] = _serverVersions[item.path];
                        }
                    }
                }

                StringBuilder sb = new StringBuilder();
                foreach (var item in _versions)
                {
                    sb.AppendLine(string.Format("{0}:{1}", item.Key, item.Value));
                }

                var path = LWUtility.GetRelativePath4Update(versionsTxt);
                if (File.Exists(path))
                {
                    File.Delete(path);
                }

                File.WriteAllText(path, sb.ToString());
                AssetsManagerRequest assetsManagerRequest = await MainManager.Instance.GetManager <AssetsManager>().InitializeAsync();

                if (assetsManagerRequest.isSuccess)
                {
                    onCompleted();
                }
                else
                {
                    onError(assetsManagerRequest.error);
                }
                state = State.Completed;

                return;
            }

            if (onCompleted != null)
            {
                onCompleted();
            }

            state = State.Completed;
        }
示例#2
0
        public async void Check()
        {
            if (state != State.Wait)
            {
                return;
            }
            //不连服务器
            if (!LWUtility.GlobalConfig.connServer)
            {
                AssetsManagerRequest _Request = await MainManager.Instance.GetManager <AssetsManager>().InitializeAsync();

                if (_Request.isSuccess)
                {
                    onCompleted();
                }
                else
                {
                    onError(_Request.error);
                }
                return;
            }
            state = State.Checking;
            AssetsManagerRequest request = await MainManager.Instance.GetManager <AssetsManager>().InitializeAsync();

            if (request.isSuccess)
            {
                //获取本地的版本文件路径
                var path = LWUtility.GetRelativePath4Update(versionsTxt);
                //当前不存在该文件,即第一次打开应用
                if (!File.Exists(path))
                {
                    //加载StreamingAssets下的的版本文件
                    var asset = MainManager.Instance.GetManager <AssetsManager>().LoadAsync(LWUtility.GetWebUrlFromDataPath(versionsTxt), typeof(TextAsset));
                    asset.completed += delegate
                    {
                        if (asset.error != null)
                        {
                            LoadVersions(string.Empty);
                            return;
                        }

                        var dir = Path.GetDirectoryName(path);
                        if (!Directory.Exists(dir))
                        {
                            Directory.CreateDirectory(dir);
                        }
                        //将StreamingAssets下的版本文件写入到persistentDataPath
                        File.WriteAllText(path, asset.text);
                        LoadVersions(asset.text);
                        asset.Release();
                    };
                }
                else
                {
                    LoadVersions(File.ReadAllText(path));
                }
            }
            else
            {
                // 本地没有文件,直接更新
                LoadVersions(string.Empty);
            }
        }