import GameNet from "../Network/GameNet" import utils from "../Network/netUtils"; cc.Class({ extends: cc.Component, properties: { }, // LIFE-CYCLE CALLBACKS: onLoad() { cc.view.enableAutoFullScreen(false); cc.game.addPersistRootNode(this.node); async function dappInit() { let dapp = GlobalD.dapp = new Dapp() try { console.log('开始初始化dapp!') await dapp.init() console.log("用户当前钱包地址:" + dapp.getAddress()) // 初始化成功,得到用户当前钱包地址 dapp.onAccountChanged((account) => { console.log('当前钱包地址发生变化', account.address) // 用户钱包地址即为登录账户,使用过程中用户可以切换钱包地址,即游戏要进行当前地址退出登录,新地址重新登录的操作 // this.address = account.address //跳回login 页面 cc.director.loadScene('Login', function () { //重新初始化信息 console.log('onAccountChanged Login'); dappInit(); }.bind(this)); }) dapp.onNetworkChanged((node) => { console.log('当前钱包节点发生变化', node) // 切换网络,一般可以不处理,实际用户端一般不会切换 //跳回login 页面 cc.director.loadScene('Login', function () { //重新初始化信息 console.log('onNetworkChanged Login'); dappInit(); }.bind(this)); }) // 获取用户信息 const { err, res } = await dapp.userInfo() if (err === null) { // 返回成功,见下面消息体 console.log(res) GlobalD.Dapp.UserInfo = res; GameNet.getInstance().init(res.id, (data) => { console.log('GameNet:' + data); }, self); utils.get(utils.api.loginToken, { loginId: GlobalD.Dapp.UserInfo.id }, (res, value) => { if (value.code == 0) { /** 登录成功获取token */ utils.setToken(value.data.token); /** 推送信息 */ utils.get(utils.api.playerPullInfo, {}, (res, playerPullInfoTemp) => { let _playerData = JSON.parse(playerPullInfoTemp.data.playerData); //记录读取的数据到内存里面 // 正常游戏 userData.readData = _playerData; //跳转游戏 cc.find("Canvas").getComponent("Login").loginButton(); }) } else { console.log(res, value); } }) } else { //TODO 服务错误 console.log("dappInit userInfo 错误"); console.log(err) } } catch (err) { console.log('catch到的错误:'+err) // 初始化失败,运行环境不是钱包环境 } } //初始化调用 dappInit; dappInit(); }, start() { }, // update (dt) {}, });