/** * 初始化平台相关信息,确定MiddleMgr */ module.exports = { init (ns) { if (CC_EDITOR) { return; } this._getPlatformInit(); }, /** * 获取当前平台的初始化接口 * * @author Pyden * @date 2019-07-31 * @returns */ _getPlatformInit () { let channelId = this._getChannelId(); G.ChannelId = Number(channelId); let sdkConfig = this._getSdkConfig(channelId); let sdkName = sdkConfig.sdk_name; let platform = cc.sys.platform; G.MiddleMgr = this._getMiddleMgr(platform, sdkName); G.MiddleMgr.sdkConfig = this._getSdkConfig(channelId); G.MiddleMgr.init(); }, /** * 获取MiddleMgr * * @author Pyden * @date 2019-12-30 * @param {String} platform 平台 * @param {String} sdkName sdk名称 * @returns {MiddleMgr} */ _getMiddleMgr (platform, sdkName) { let MiddleMgrClass; switch (platform) { case cc.sys.BAIDU_GAME: { MiddleMgrClass = require('BaiduMiddleMgr'); break; } case cc.sys.WECHAT_GAME: { MiddleMgrClass = require('WechatgameMiddleMgr'); break; } case cc.sys.ANDROID: { MiddleMgrClass = require('AndroidMiddleMgr'); break; } default: { MiddleMgrClass = this._getWebMiddleMgrClass(sdkName); break; } } return new MiddleMgrClass(); }, /** * 获取Web平台对应的MiddleMgr * * @author Pyden * @date 2019-07-29 * @param {String} sdkName sdk名称 * @returns {MiddleMgr} */ _getWebMiddleMgrClass (sdkName) { let MiddleMgrClass; switch (sdkName) { case 'web-qtt': { MiddleMgrClass = require('WebQTTMiddleMgr'); break; } case 'web-xf': { MiddleMgrClass = require('WebXFMiddleMgr'); break; } default: { MiddleMgrClass = require('WebMiddleMgr'); break; } } return MiddleMgrClass; }, /** * 渠道号映射不同的在线参数打包配置 * * @author Pyden * @date 2019-07-29 * @param {Integer} channelId * @returns {Object} */ _getChannelId () { let channelId = 999; /* sys.UNKNOWN = -1; sys.WIN32 = 0; sys.LINUX = 1; sys.MACOS = 2; sys.ANDROID = 3; sys.IPHONE = 4; sys.IPAD = 5; sys.BLACKBERRY = 6; sys.NACL = 7; sys.EMSCRIPTEN = 8; sys.TIZEN = 9; sys.WINRT = 10; sys.WP8 = 11; sys.MOBILE_BROWSER = 100; sys.DESKTOP_BROWSER = 101; sys.EDITOR_PAGE = 102; sys.EDITOR_CORE = 103; sys.WECHAT_GAME = 104; sys.QQ_PLAY = 105; sys.FB_PLAYABLE_ADS = 106; sys.BAIDU_GAME = 107; sys.VIVO_GAME = 108; sys.OPPO_GAME = 109; sys.HUAWEI_GAME = 110; sys.XIAOMI_GAME = 111; sys.JKW_GAME = 112; */ let platform = cc.sys.platform; switch (platform) { case cc.sys.MOBILE_BROWSER: case cc.sys.DESKTOP_BROWSER: { let searchParams = new URLSearchParams(window.location.search); channelId = searchParams.get('channel') || 999; break; } case cc.sys.ANDROID: { channelId = G.ANDROID_CHANNEL || 999; break; } default: { if (cc.sys.os == cc.sys.OS_IOS) { channelId = G.IOS_CHANNEL || 999; } else { channelId = G.ANDROID_CHANNEL || 999; } break; } } return channelId; }, /** * 渠道号映射不同的SDK打包配置 * * @author Pyden * @date 2019-07-29 * @param {Integer} channelId * @returns {Object} */ _getSdkConfig (channelId) { let WebSDKConfig = require('AllSDKConfig'); let sdkConfig = WebSDKConfig['ch' + channelId]; if (!sdkConfig) { sdkConfig = WebSDKConfig['ch999'] || {}; sdkConfig.channel = channelId; } return sdkConfig; } };