插件优化,增加FTP上传进度监控.

This commit is contained in:
andrewlu
2021-02-02 22:20:01 +08:00
parent 46b65e4f9c
commit 99ec923ebc
8 changed files with 292 additions and 103 deletions

View File

@@ -11,62 +11,41 @@ window.beforeBoot = function () {
window.boot();
return;
}
url += `?_t=${Math.random()}`;
cc.log("请求更新地址:", url);
get(url, function (err, asset) {
cc.log("请求更新信息:", url, err && err.toLocaleString(), JSON.stringify(asset));
if (err || !asset) {
window.boot();
return;
}
// 请求缓存信息,判断是否需要更新.
let assetStr = window.localStorage.getItem('version_data');
if (!assetStr) {
window.boot();
} else {
let asset = JSON.parse(assetStr);
window.mergeVersion(asset);
window.boot();
cc.log("游戏已启动.");
}
// 游戏启动后再请求更新,避免影响启动速度.
url += `?_t=${Math.random()}`;
cc.log("请求更新地址:", url);
get(url, function (err, asset) {
if (err || !asset) {
return;
}
window.localStorage.setItem('version_data', asset);
});
};
window.mergeVersion = function (updateInfo) {
const currentVer = cc.sys.localStorage.getItem("currentVer");
let isFirstRun = false;
let newVerFlag = false;
if (!currentVer) {
isFirstRun = true;
cc.log("当前为首次运行");
} else {
const oldVerInfo = JSON.parse(currentVer);
if (oldVerInfo && oldVerInfo.versionCode != updateInfo.versionCode) {
newVerFlag = true;
cc.log("发现新版本信息:", updateInfo.versionCode, oldVerInfo.versionCode);
}
}
const settings = window._CCSettings;
if (updateInfo.server) {
settings.server = updateInfo.server;
cc.log("更新远程资源地址:", updateInfo.server);
}
const bundleVers = updateInfo.bundles
const bundleVers = updateInfo.bundles;
if (bundleVers) {
let changed = false;
for (let b in bundleVers) {
if (bundleVers[b] != settings.bundleVers[b]) {
// 配置中的bundleVer版本不一致,则添加到remote列表中去,以供远程加载.
if (settings.remoteBundles.indexOf(b) < 0) {
settings.remoteBundles.push(b);
}
changed = true;
cc.log("发现更新Bundle:", b);
}
}
settings.bundleVers = bundleVers;
// 如果首次运行,但检测版本有差异,则标记有更新.
if (isFirstRun && changed) {
newVerFlag = true;
cc.log("标记为新版本.");
}
}
cc.sys.localStorage.setItem('newVerFlag', newVerFlag ? 1 : 0);
cc.sys.localStorage.setItem('firstRunFlag', isFirstRun ? 1 : 0);
cc.sys.localStorage.setItem('currentVer', JSON.stringify(updateInfo));
return;
}
// ajax 请求.
@@ -77,8 +56,8 @@ function get(url, cb) {
ajax.onreadystatechange = function () {
if (ajax.readyState == 4) {
if (ajax.status == 200) {
var response = JSON.parse(ajax.responseText)
cb && cb(null, response);
// var response = JSON.parse(ajax.responseText)
cb && cb(null, ajax.responseText);
return;
} else {
cb && cb("request error!");
@@ -87,4 +66,3 @@ function get(url, cb) {
}
ajax.send(null);
}