PlatformInit.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /**
  2. * 初始化平台相关信息,确定MiddleMgr
  3. */
  4. module.exports = {
  5. init (ns) {
  6. if (CC_EDITOR) {
  7. return;
  8. }
  9. this._getPlatformInit();
  10. },
  11. /**
  12. * 获取当前平台的初始化接口
  13. *
  14. * @returns
  15. */
  16. _getPlatformInit () {
  17. let channelId = this._getChannelId();
  18. G.ChannelId = Number(channelId);
  19. let sdkConfig = this._getSdkConfig(channelId);
  20. let sdkName = sdkConfig.sdk_name;
  21. let platform = cc.sys.platform;
  22. G.MiddleMgr = this._getMiddleMgr(platform, sdkName);
  23. G.MiddleMgr.sdkConfig = this._getSdkConfig(channelId);
  24. G.MiddleMgr.init();
  25. },
  26. /**
  27. * 获取MiddleMgr
  28. *
  29. * @param {String} platform 平台
  30. * @param {String} sdkName sdk名称
  31. * @returns {MiddleMgr}
  32. */
  33. _getMiddleMgr (platform, sdkName) {
  34. let MiddleMgrClass;
  35. switch (platform) {
  36. case cc.sys.MOBILE_BROWSER:
  37. case cc.sys.DESKTOP_BROWSER: {
  38. MiddleMgrClass = this._getWebMiddleMgrClass(sdkName);
  39. break;
  40. }
  41. default: {
  42. MiddleMgrClass = this._getWebMiddleMgrClass(sdkName);
  43. break;
  44. }
  45. }
  46. return new MiddleMgrClass();
  47. },
  48. /**
  49. * 获取Web平台对应的MiddleMgr
  50. *
  51. * @param {String} sdkName sdk名称
  52. * @returns {MiddleMgr}
  53. */
  54. _getWebMiddleMgrClass (sdkName) {
  55. let MiddleMgrClass;
  56. switch (sdkName) {
  57. default: {
  58. MiddleMgrClass = require('WebMiddleMgr');
  59. break;
  60. }
  61. }
  62. return MiddleMgrClass;
  63. },
  64. /**
  65. * 渠道号映射不同的在线参数打包配置
  66. *
  67. * @param {Integer} channelId
  68. * @returns {Object}
  69. */
  70. _getChannelId () {
  71. let channelId = 999;
  72. let platform = cc.sys.platform;
  73. switch (platform) {
  74. case cc.sys.MOBILE_BROWSER:
  75. case cc.sys.DESKTOP_BROWSER: {
  76. let searchParams = new URLSearchParams(window.location.search);
  77. channelId = searchParams.get('channel') || 999;
  78. break;
  79. }
  80. }
  81. return channelId;
  82. },
  83. /**
  84. * 渠道号映射不同的SDK打包配置
  85. *
  86. * @param {Integer} channelId
  87. * @returns {Object}
  88. */
  89. _getSdkConfig (channelId) {
  90. let WebSDKConfig = require('AllSDKConfig');
  91. let sdkConfig = WebSDKConfig['ch' + channelId];
  92. if (!sdkConfig) {
  93. sdkConfig = WebSDKConfig['ch999'] || {};
  94. sdkConfig.channel = channelId;
  95. }
  96. return sdkConfig;
  97. }
  98. };