223 lines
6.3 KiB
JavaScript
223 lines
6.3 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, 'c314b9g0MpKT57KBTaPyCzZ', 'scene.update');
|
|
// Scripts/mod/login/scene/scene.update.js
|
|
|
|
"use strict";
|
|
|
|
/******************************************************************
|
|
*
|
|
* 版本更新检查
|
|
*
|
|
******************************************************************/
|
|
|
|
var BridgeWindow = require("bridge.window");
|
|
var CFG = require("config");
|
|
var FFSDK = require("ff_sdk");
|
|
var FFPlugin = require("plugin_help");
|
|
var TDefine = require("trace.define");
|
|
var TTT = TDefine.TraceType;
|
|
var STEP = {
|
|
None: -1,
|
|
CHECK_NET: 6,
|
|
CHECK_SDK: 7,
|
|
CHECK_APP: 0,
|
|
CHECK_ENVIRON: 1,
|
|
CHECK_RES: 2,
|
|
UPDATING_RES: 3,
|
|
UNZIP: 4,
|
|
CHECK_END: 5
|
|
};
|
|
cc.Class({
|
|
"extends": BridgeWindow,
|
|
properties: {
|
|
labTip: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
progMain: {
|
|
"default": null,
|
|
type: cc.ProgressBar
|
|
},
|
|
progSub: {
|
|
"default": null,
|
|
type: cc.ProgressBar
|
|
}
|
|
},
|
|
// 载入时按主题载入背景
|
|
onLoad: function onLoad() {
|
|
var chnn = nx.bridge.vget("channelName");
|
|
var theme = CFG.Themes[chnn] || CFG.Themes["DEF"];
|
|
var path = cc.path.join("prefab/login/themes", theme, "bg");
|
|
nx.gui.setSpriteFrame(this, "bg", path);
|
|
},
|
|
// 显示
|
|
onEnable: function onEnable() {
|
|
// 非SDK环境
|
|
if (!FFSDK.getInstance().isEnableSDK()) {
|
|
this.doNext();
|
|
return;
|
|
}
|
|
|
|
// 注册
|
|
FFPlugin.getInstance().regSdkCallBack("checkUpdate", this.onHotUpdate, this);
|
|
FFPlugin.getInstance().regSdkCallBack("checkUpdateDone", this.onHotUpdateDone, this);
|
|
|
|
// UI初始化
|
|
nx.gui.setString(this.labTip, "", "");
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
this.progMain.progress = 0;
|
|
nx.gui.setString(this.progMain, "txt", nx.text.getKey("检查更新"));
|
|
|
|
// 检查
|
|
this.curStep = STEP.None;
|
|
FFSDK.getInstance().checkUpdate();
|
|
},
|
|
// 关闭
|
|
onDisable: function onDisable() {
|
|
// 注销
|
|
FFPlugin.getInstance().removeSdkCallBack("checkUpdate", this.onHotUpdate);
|
|
FFPlugin.getInstance().removeSdkCallBack("checkUpdateDone", this.onHotUpdateDone);
|
|
},
|
|
// 更新通告
|
|
onHotUpdate: function onHotUpdate(_params) {
|
|
var act = this.curStep;
|
|
switch (_params.action) {
|
|
case "CheckNet":
|
|
act = STEP.CHECK_NET;
|
|
break;
|
|
case "CheckSDK":
|
|
act = STEP.CHECK_SDK;
|
|
break;
|
|
case "CheckApp":
|
|
act = STEP.CHECK_APP;
|
|
break;
|
|
case "CheckBundle":
|
|
act = STEP.CHECK_ENVIRON;
|
|
break;
|
|
case "CheckHotfix":
|
|
act = STEP.CHECK_RES;
|
|
break;
|
|
case "DownLoading":
|
|
act = STEP.UPDATING_RES;
|
|
break;
|
|
case "Unzip":
|
|
act = STEP.UNZIP;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (act != this.curStep) {
|
|
this.curStep = act;
|
|
switch (act) {
|
|
case STEP.CHECK_NET:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("网络检测中"));
|
|
this.progMain.progress = 0.03;
|
|
nx.gui.setString(this.progMain, "txt", "3%");
|
|
}
|
|
break;
|
|
case STEP.CHECK_SDK:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("引擎检测中"));
|
|
this.progMain.progress = 0.08;
|
|
nx.gui.setString(this.progMain, "txt", "8%");
|
|
}
|
|
break;
|
|
case STEP.CHECK_APP:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("版本检测中"));
|
|
this.progMain.progress = 0.1;
|
|
nx.gui.setString(this.progMain, "txt", "10%");
|
|
}
|
|
break;
|
|
case STEP.CHECK_ENVIRON:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("环境检测中"));
|
|
this.progMain.progress = 0.15;
|
|
nx.gui.setString(this.progMain, "txt", "15%");
|
|
}
|
|
break;
|
|
case STEP.CHECK_RES:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("资源检测中"));
|
|
this.progMain.progress = 0.2;
|
|
nx.gui.setString(this.progMain, "txt", "20%");
|
|
}
|
|
break;
|
|
case STEP.UPDATING_RES:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
var version = _params.version || "";
|
|
var tip = nx.text.format("资源%s下载中", version);
|
|
nx.gui.setString(this.labTip, "", tip);
|
|
}
|
|
break;
|
|
case STEP.UNZIP:
|
|
{
|
|
nx.gui.setActive(this.progSub, "", true);
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("资源安装中"));
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
// 二级进度更新
|
|
if (act == STEP.UPDATING_RES || act == STEP.UNZIP) {
|
|
var prog = parseInt(_params.progress) || 0;
|
|
this.progSub.progress = prog * 0.01;
|
|
nx.gui.setString(this.progSub, "txt", prog + "%");
|
|
var ttprog = act == STEP.UPDATING_RES ? Math.floor(20 + 0.6 * prog) : Math.floor(80 + 0.2 * prog);
|
|
this.progMain.progress = ttprog * 0.01;
|
|
nx.gui.setString(this.progMain, "txt", ttprog + "%");
|
|
}
|
|
|
|
// 埋点
|
|
if (nx.mTrace && nx.dt.strNEmpty(_params.action)) {
|
|
nx.mTrace.trace(TTT.hotupdate, _params.action);
|
|
}
|
|
},
|
|
// 更新通告
|
|
onHotUpdateDone: function onHotUpdateDone(_params) {
|
|
if (_params === void 0) {
|
|
_params = {};
|
|
}
|
|
this.curStep = STEP.CHECK_END;
|
|
this.progMain.progress = 1;
|
|
nx.gui.setString(this.progMain, "txt", "100%");
|
|
nx.gui.setActive(this.progSub, "", false);
|
|
nx.frame.vset("HotVersion", _params.version || "");
|
|
|
|
// 需要更新
|
|
var suc = _params.success || "0";
|
|
if (suc != "0") {
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("检测到新版本"));
|
|
this.doNext();
|
|
return;
|
|
}
|
|
nx.gui.setString(this.labTip, "", nx.text.getKey("检查结束"));
|
|
var changed = _params.changeContent || "";
|
|
if (changed == 1) {
|
|
nx.storage.set("FCSkipUpdate", _params.version || "");
|
|
this.doRestart();
|
|
} else {
|
|
this.doNext();
|
|
}
|
|
},
|
|
// 下一步
|
|
doNext: function doNext() {
|
|
game.launchDone();
|
|
},
|
|
// 重启
|
|
doRestart: function doRestart() {
|
|
nx.restart();
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |