| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- /**
- * 初始化平台相关信息,确定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;
- }
- };
|