import HotUpdate, { HotOptions } from "../../../mk/sdk/HotUpdate"; import JsbSystem from "../../../mk/system/JsbSystem"; import LoadingBar from "../../component/LoadingBar"; const { ccclass, property } = cc._decorator; @ccclass export default class Login extends cc.Component { @property(LoadingBar) private bar: LoadingBar = null; @property({ displayName: '加载文字', type: cc.Label }) private lbl_progress: cc.Label = null; @property({ displayName: '服务协议', type: cc.Label }) private lbl_server: cc.Label = null; @property({ displayName: '隐私协议', type: cc.Label }) private lbl_privacy: cc.Label = null; @property({ type: cc.Asset }) private manifest: cc.Asset = null; /** 是否检查热更 */ hasCheck = false private updateFinish = false; onLoad() { this.setProgress(0); let options = new HotOptions(); options.OnUpdateProgress = (event: jsb.EventAssetsManager) => { let bytes = event.getDownloadedBytes() + '/' + event.getTotalBytes(); let files = event.getDownloadedFiles() + '/' + event.getTotalFiles(); let file = event.getPercentByFile().toFixed(2); let byte = event.getPercent().toFixed(2); let msg = event.getMessage(); this.bar.setProgress(parseFloat(file) * 0.01); this.lbl_progress.string = '更新中 ' + parseFloat(file) + "%"; console.log(msg); }; options.OnNeedToUpdate = (data) => { setTimeout(() => { HotUpdate.hotUpdate(); }, 500); }; options.OnNoNeedToUpdate = () => { this.updateFinish = true; }; options.OnUpdateFailed = () => { setTimeout(() => { HotUpdate.checkUpdate(); }, 300); }; options.OnUpdateSucceed = () => { cc.audioEngine.stopAll(); cc.game.restart(); }; HotUpdate.init(this.manifest, options); } start() { if (JsbSystem.getWxAppId()) { //获取微信id gData.appData.appId = JsbSystem.getWxAppId(); } //获取设备信息 JsbSystem.getDeviceInfo(); } private setProgress(current) { this.bar.setProgress(current); this.lbl_progress.string = "加载不消耗流量 " + current + "%"; } private process: number = 0; update() { if (this.hasCheck && !this.updateFinish) { } else { if (this.process < 100) { this.process += 2; this.setProgress(this.process); } } if (cc.sys.isNative) { //检查热更新 if (!this.hasCheck) { HotUpdate.checkUpdate(); this.hasCheck = true console.log('MMM updateFinish NO ') return } if (!this.updateFinish) { console.log('MMM updateFinish state false') return } } if (gData.loginData.loadResCompelete) { if (gData.appData.getDeviceInfoCompelete) { this.login(); gData.appData.getDeviceInfoCompelete = false; } else if (gData.gameData.dataFinish) {//登录流程完毕 if (gData.gameData.isNewPlayer()) { mk.ui.openPanel("module/agreementTip/agreementTip"); } else { mk.ui.openPanel("game/prefab/game"); } gData.gameData.dataFinish = false; } } else { gData.loginData.loadLocalRes(); } } public login() { //初始化相关数据 mk.pool.init(gData.gameData.pools); //取消构造的时候自动初始化,手动初始化 mk.ad.init(); gData.appData.init(); gData.adData.init(); gData.loginData.init(); console.log("[FC] gData.appData.appId", gData.appData.appId); //登录 gData.loginData.login(); } }