123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- cc.Class({
- /**
- * 收到JNI发上来的事件
- *
- * @param {Object} eventData
- */
- handleEvent (eventData) {
- /* eventData参数:
- * @param {String} sdkName
- * @param {String} eventKey
- * @param {Integer} code
- * @param {String} errorMsg
- * @param {Object} data
- */
- /*
- 授权回调事件,eventKey如下:
- auth_login_result // SDK授权完成
- eventData.data // 授权信息
- auth_logout_result // SDK账号登出
- eventData.data // 授权信息
- auth_change_account // SDK切换账号完成
- eventData.data // 授权信息
- auth_exit // 退出游戏
- 获取实名认证回调事件,eventKey如下:
- auth_real_name_info // 回调实名认证信息
- eventData.data.age {Integer} 年龄
- eventData.data.isAdult {Boolean} 是否成年
- eventData.data.isRealName {Boolean} 是否已实名
- eventData.data.isEndGame {Boolean} 是否结束游戏
- */
- let eventKey = eventData.eventKey;
- switch (eventKey) {
- case 'auth_login_result': {
- let authInfo = eventData.data;
- if (!authInfo) {
- authInfo = this.getAuthInfo(eventKey.sdkName);
- }
- cc.game.emit('e_middle_auth_login_result', eventData);
- break;
- }
- case 'auth_logout_result': {
- let authInfo = eventData.data;
- if (!authInfo) {
- authInfo = this.getAuthInfo(eventKey.sdkName);
- }
- cc.game.emit('e_middle_auth_logout_result', eventData);
- break;
- }
- case 'auth_change_account': {
- let authInfo = eventData.data;
- if (!authInfo) {
- authInfo = this.getAuthInfo(eventKey.sdkName);
- }
- cc.game.emit('e_middle_auth_change_account', eventData);
- break;
- }
- case 'auth_exit': {
- cc.game.end();
- break;
- }
- case 'auth_real_name_info': {
- cc.game.emit('e_middle_auth_real_name_info', eventData);
- break;
- }
- default:
- break;
- }
- },
- /**
- * 获取授权模块的配置信息
- *
- * @author Pyden
- * @date 2020-03-23
- * @returns {Object}
- * config.list 授权类型信息列表
- */
- getConfig () {
- if (!this._config) {
- let gameConfig = G.MiddleMgr.getGameConfig();
- if (gameConfig && gameConfig.auth) {
- this._config = gameConfig.auth;
- }
- }
- return this._config;
- },
- /**
- * 获取SDK授权信息列表 authorize_authorizeTypeList
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Array}
- * sdkName
- * authType {JMC.AUTHORIZE_TYPE}
- */
- getAuthTypeInfoList () {
- let config = this.getConfig() || {};
- return config.list;
- },
- /**
- * 获取当前授权信息
- * 注意:收到授权成功信息事件后,需要更新授权信息
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Object}
- * sdkName 当前正在授权/授权完成的sdk名称
- * authType 当前正在授权/授权完成的授权方式
- * authStatus {JMC.AUTH_STATUS} 授权状态 authorize_isAuthorizeLoginSuccess
- * isWaitAuth 是否正在授权 authorize_isWaitAuthorizeLogin
- * uuid 用于绑定游戏账号的uuid
- * nickname 昵称
- * headUrl 头像地址
- */
- getCurrentAuthInfo () {
- if (!this._currentAuthInfo) {
- // 优先取授权成功的,没有授权成功的话,就选第一个
- let authTypeInfoList = this.getAuthTypeInfoList();
- let ret;
- for (const v of authTypeInfoList) {
- let info = this.getAuthInfo(v.sdkName);
- if (!ret) {
- ret = info;
- } else {
- if (info.authStatus == JMC.AUTH_STATUS.LOGIN_SUCCESS) {
- ret = info;
- break;
- }
- }
- }
- this._currentAuthInfo = ret;
- }
- return this._currentAuthInfo;
- },
- /**
- * 获取绑定账号的唯一标识
- *
- * @author Pyden
- * @date 2020-03-23
- * @returns {String}
- */
- getUUID () {
- let authInfo = this.getCurrentAuthInfo() || {};
- return authInfo.uuid;
- },
- /**
- * SDK授权登录 authorize_loginWithType
- *
- * @param {String} sdkName
- * @param {Integer} authType
- */
- login (sdkName, authType) {
- G.MiddleMgr.handleEvent({
- module: 'auth',
- eventKey: 'auth_login_result',
- code: 200,
- data: {
- sdkName: 'Web',
- authType: authType,
- authStatus: JMC.AUTH_STATUS.LOGIN_SUCCESS,
- isWaitAuth: false,
- loginType: JMC.LOGIN_TYPE.NORMAL,
- uuid: 'openboxh5_' + G.MiddleDevice.getUDID(),
- }
- });
- },
- /**
- * SDK切换账号 authorize_changeLoginWay authorize_showLogin
- *
- * @param {String} sdkName
- * @returns {Boolean} 返回值表示是否回到授权界面重新授权
- */
- logout (sdkName) {
- return false;
- },
- /**
- * 获取授权信息
- *
- * @author Pyden
- * @date 2020-03-23
- * @param {String} sdkName
- * @returns
- * sdkName 当前正在授权/授权完成的sdk名称
- * authType 当前正在授权/授权完成的授权方式
- * authStatus 授权状态 authorize_isAuthorizeLoginSuccess
- * isWaitAuth 是否正在授权 authorize_isWaitAuthorizeLogin
- * uuid 用于绑定游戏账号的uuid
- * nickname 昵称
- * headUrl 头像地址
- */
- getAuthInfo (sdkName) {
- return {
- sdkName: 'Web授权',
- authType: JMC.AUTHORIZE_TYPE.NORMAL,
- authStatus: JMC.AUTH_STATUS.LOGIN_SUCCESS,
- isWaitAuth: false,
- loginType: JMC.LOGIN_TYPE.NORMAL,
- uuid: 'openboxh5_' + G.MiddleDevice.getUDID(),
- nickname: undefined,
- headUrl: undefined
- };
- },
- /**
- * 是否支持获取实名信息 authorize_isSupportCertification
- *
- * @returns {Boolean}
- */
- isSupportRealName () {
- return false;
- },
- /**
- * 获取游戏实名信息(异步回调 auth_real_name_info) authorize_getCertificationInfo
- *
- */
- requestRealNameInfo () {
- G.MiddleMgr.handleEvent({
- module: 'auth',
- eventKey: 'auth_real_name_info',
- code: 500,
- errorMsg: '不支持实名认证'
- });
- },
- /**
- * 是否支持打开实名认证弹框 authorize_isSupportOpenCertification
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean}
- */
- isSupportOpenRealNameAlert () {
- return false;
- },
- /**
- * 打开实名认证弹框 authorize_openCertificationIntent
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean} 返回值表示是否支持打开实名认证弹框
- */
- openRealNameAlert () {
- return false;
- },
- /**
- * 展示SDK的退出弹框 authorize_showExit
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean} 返回值表示是否在SDK展示了退出弹框
- */
- showExitAlert () {
- return false;
- },
- /**
- * 调用SDK的退出逻辑 authorize_exit
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean} 返回值表示是否在SDK退出了游戏
- */
- exitGame () {
- return false;
- },
- /**
- * 是否从游戏中心启动 authorize_isLaunchFromCenter
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean}
- */
- isLaunchFromCenter () {
- return false;
- },
- /**
- * 打开游戏中心 authorize_openGameCenter
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean} 返回值表示是否支持打开游戏中心
- */
- openGameCenter () {
- return false;
- },
- /**
- * 跳转社区 authorize_goToSocialCenter
- *
- * @author Pyden
- * @date 2020-03-11
- * @returns {Boolean} 返回值表示是否支持跳转社区
- */
- openSocialCenter () {
- return false;
- },
- /**
- * 玩家信息上报 authorize_setPlayerMoreInfo
- *
- * @author Pyden
- * @date 2020-03-11
- * @param {Object} playerInfo
- * playerInfo.uid
- * playerInfo.level
- * playerInfo.nickname
- */
- uploadPlayerInfo (playerInfo) {
- },
- /**
- * 玩家开局上报 reportGameStart
- *
- * @author Pyden
- * @date 2020-03-11
- * @param {Object} playerInfo
- * playerInfo.uid
- * playerInfo.level
- * playerInfo.nickname
- */
- uploadGameStart (playerInfo) {
- }
- });
|