增加版本信息获取工具类.
可以在项目代码中直接使用 import um = require('UpdateManager') 然后调用相关接口.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
window.beforeBoot = function () {
|
||||
cc.log("游戏正在启动中.")
|
||||
// console.log("游戏正在启动中.")
|
||||
if (window.remoteUrl) {
|
||||
const settings = window._CCSettings;
|
||||
settings.server = window.remoteUrl;
|
||||
cc.log("远程资源地址:", settings.server);
|
||||
//cc.log("远程资源地址:", settings.server);
|
||||
}
|
||||
let url = window.updateUrl || false;
|
||||
if (!url) {
|
||||
@@ -13,56 +13,31 @@ window.beforeBoot = function () {
|
||||
}
|
||||
|
||||
// 请求缓存信息,判断是否需要更新.
|
||||
let assetStr = window.localStorage.getItem('version_data');
|
||||
let assetStr = window.localStorage.getItem('cur_ver_info');
|
||||
if (!assetStr) {
|
||||
window.boot();
|
||||
} else {
|
||||
// console.log("当前版本信息:", assetStr);
|
||||
let asset = JSON.parse(assetStr);
|
||||
window.mergeVersion(asset);
|
||||
window.boot();
|
||||
}
|
||||
// 游戏启动后再请求更新,避免影响启动速度.
|
||||
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 settings = window._CCSettings;
|
||||
const bundleVers = updateInfo.bundles;
|
||||
settings.server = updateInfo.server;
|
||||
if (bundleVers) {
|
||||
for (let b in bundleVers) {
|
||||
if (bundleVers[b] != settings.bundleVers[b]) {
|
||||
// 配置中的bundleVer版本不一致,则添加到remote列表中去,以供远程加载.
|
||||
if (settings.remoteBundles.indexOf(b) < 0) {
|
||||
settings.remoteBundles.push(b);
|
||||
console.log('bundle 有更新:', b, bundleVers[b]);
|
||||
}
|
||||
}
|
||||
}
|
||||
settings.bundleVers = bundleVers;
|
||||
}
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
// ajax 请求.
|
||||
function get(url, cb) {
|
||||
const ajax = new XMLHttpRequest();
|
||||
ajax.open("get", url, true);
|
||||
ajax.setRequestHeader("Content-Type", "application/json;charset=utf-8");
|
||||
ajax.onreadystatechange = function () {
|
||||
if (ajax.readyState == 4) {
|
||||
if (ajax.status == 200) {
|
||||
// var response = JSON.parse(ajax.responseText)
|
||||
cb && cb(null, ajax.responseText);
|
||||
return;
|
||||
} else {
|
||||
cb && cb("request error!");
|
||||
}
|
||||
}
|
||||
}
|
||||
ajax.send(null);
|
||||
}
|
||||
|
Reference in New Issue
Block a user