/** * 初始化平台相关信息,确定MiddleMgr */ module.exports = { init (ns) { if (CC_EDITOR) { return; } this._getPlatformInit(); }, /** * 获取当前平台的初始化接口 * * @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 * * @param {String} platform 平台 * @param {String} sdkName sdk名称 * @returns {MiddleMgr} */ _getMiddleMgr (platform, sdkName) { let MiddleMgrClass; switch (platform) { case cc.sys.MOBILE_BROWSER: case cc.sys.DESKTOP_BROWSER: { MiddleMgrClass = this._getWebMiddleMgrClass(sdkName); break; } default: { MiddleMgrClass = this._getWebMiddleMgrClass(sdkName); break; } } return new MiddleMgrClass(); }, /** * 获取Web平台对应的MiddleMgr * * @param {String} sdkName sdk名称 * @returns {MiddleMgr} */ _getWebMiddleMgrClass (sdkName) { let MiddleMgrClass; switch (sdkName) { default: { MiddleMgrClass = require('WebMiddleMgr'); break; } } return MiddleMgrClass; }, /** * 渠道号映射不同的在线参数打包配置 * * @param {Integer} channelId * @returns {Object} */ _getChannelId () { let channelId = 999; 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; } } return channelId; }, /** * 渠道号映射不同的SDK打包配置 * * @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; } };