cc.Class({ /** * 收到JNI发上来的事件 * * @author Pyden * @date 2020-03-11 * @param {Object} eventData */ handleEvent (eventData) { /* eventData参数: * @param {String} sdkName * @param {String} eventKey * @param {Integer} code * @param {String} errorMsg * @param {Object} data */ let eventKey = eventData.eventKey; if (eventData.data && eventData.sdkName) { eventData.data.sdkName = eventData.sdkName; } switch (eventKey) { case 'ad_error': { cc.game.emit('e_middle_ad_error', eventData); break; } case 'ad_showed': { cc.game.emit('e_middle_ad_showed', eventData); break; } case 'ad_closed': { cc.game.emit('e_middle_ad_closed', eventData); break; } case 'ad_clicked': { cc.game.emit('e_middle_ad_clicked', eventData); break; } case 'ad_award': { cc.game.emit('e_middle_ad_award', eventData); break; } case 'ad_skip': { cc.game.emit('e_middle_ad_skip', eventData); break; } default: break; } }, /** * 获取广告模块的配置信息 * * @author Pyden * @date 2020-03-23 * @returns {Object} * config.list 广告SDK类型信息列表 */ getConfig () { if (!this._config) { let gameConfig = G.MiddleMgr.getGameConfig(); if (gameConfig && gameConfig.ad) { this._config = gameConfig.ad; } } return this._config; }, /** * 获取广告SDK类型信息列表 * * @author Pyden * @date 2020-03-11 * @returns {Array} * name * sdkName */ getSDKTypeInfoList () { let config = this.getConfig() || {}; return config.list; }, /** * 销毁所有广告 * * @author Pyden * @date 2020-03-11 */ clearAllSDKAD () { let sdkTypeInfoList = this.getSDKTypeInfoList(); for (const v of sdkTypeInfoList) { this.clearAllAD(v.sdkName); } }, /** * 加载并展示广告 * * @author Pyden * @date 2020-03-11 * @param {String} sdkName 广告SDK名称 * @param {Integer} adType 广告类型 * @param {Integer} adId 广告参数 * @param {Integer} positionId 广告入口 * @param {Object} uiInfo 广告UI信息,如尺寸、时间等 */ loadAndShowAD (sdkName, adType, adId, positionId, uiInfo) { }, /** * 销毁指定广告 * * @author Pyden * @date 2020-03-11 * @param {String} sdkName 广告SDK名称 * @param {Integer} adType 广告类型 * @param {Integer} adId 广告参数 * @param {Integer} positionId 广告入口 */ clearAD (sdkName, adType, adId, positionId) { }, /** * 销毁全部广告类型 * * @author Pyden * @date 2020-03-11 * @param {String} sdkName 广告SDK名称 */ clearAllAD (sdkName) { }, /** * 设置广告是否可见 * * @author Pyden * @date 2020-03-11 * @param {String} sdkName 广告SDK名称 * @param {Integer} adType 广告类型 * @param {Integer} adId 广告参数 * @param {Integer} positionId 广告入口 * @param {Boolean} visible 是否可见 */ setADVisible (sdkName, adType, adId, positionId, visible) { }, /** * 设置广告用户协议是否同意 —— 目前仅华为 ad_setAdUserProtocolAgreeState * * @author Pyden * @date 2020-03-11 * @param {String} sdkName 广告SDK名称 * @param {Boolean} value */ setAdUserProtocolAgreeState (sdkName, value) { } });