RemoteConfig.ts 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import Config from "../Config";
  2. import { gameMethod } from "../common/gameMethod";
  3. import HttpRequest from "../network/HttpRequest";
  4. import { FormulaCom } from "./Formula";
  5. import { ZeroGlobal } from "./ZeroGlobal";
  6. interface RemoteConifgParam {
  7. preVersion: string //微信-忆游十三道
  8. policy?: string, // 隐私协议是否默认勾选 没有配置或者配置1默认勾选,配置0默认不勾选
  9. showTips?: string //是否显示启动页0.1折的提示
  10. showTipType?: string; // 显示启动页0.1折提示图片
  11. shShowTips?: string //审核服是否显示启动页0.1折的提示
  12. shShowTipType?: string; // 审核服显示启动页0.1折提示图片
  13. showAgeTip?: string; // 显示启动页适龄图片
  14. showBgType?: string; // 显示启动页背景图片
  15. adVideo?: string; // 是否有广告 0关,1开
  16. openTD?: number; // 数数数据上报开关 0关,1开
  17. kefu?: string; // 1开启客服按钮,0或者空关闭客服按钮
  18. beianUrl?: string; // 备案网址
  19. // preVersionPay: number // 审核服是否打开支付开关 0-关闭 1-开启
  20. }
  21. const pidSwitch = {//正式服pid:审核服pid
  22. "1220":"1200",
  23. "1221":"1201",
  24. "1222":"1202",
  25. "1223":"1203",
  26. "1224":"1204",
  27. "1225":"1205",
  28. }
  29. export default class RemoteConfig {
  30. static init(cb: Function) {
  31. console.log("paltform=>", cc.sys.platform)
  32. if (cc.sys.platform == cc.sys.DESKTOP_BROWSER || cc.sys.platform == cc.sys.MOBILE_BROWSER || cc.sys.platform == cc.sys.WECHAT_GAME || cc.sys.platform == cc.sys.BYTEDANCE_GAME
  33. || cc.sys.platform == cc.sys.ANDROID || cc.sys.platform == cc.sys.IPHONE || cc.sys.platform == cc.sys.IPAD
  34. || cc.sys.platform == cc.sys.TAOBAO_MINIGAME || cc.sys.platform == cc.sys.VIVO_GAME || cc.sys.platform == cc.sys.XIAOMI_GAME || cc.sys.platform == cc.sys.OPPO_GAME) {
  35. // 只在微信小游戏上使用此入口文件,用来设定pid值
  36. //电魂sdk漏斗打点
  37. if (window['dhSDK']) {
  38. // 事件ID
  39. let eventId = "100101::GAME_CREATE_VERSION"; // 表示SDK客户端上报的启动事件
  40. // 事件参数
  41. let eventParams = {};
  42. // 必填参数
  43. eventParams["logLevel"] = "d";
  44. eventParams["logContent"] = "检查版本开始";
  45. // 执行上报
  46. window['dhSDK'].trackEvent(eventId, eventParams);
  47. }
  48. HttpRequest.GET(Config.remoteVersionUrl, (data: RemoteConifgParam) => {
  49. if (data == null) {
  50. Config.pid = ZeroGlobal.getKey("packageID") || '202'
  51. cb()
  52. } else {
  53. let _pid = ZeroGlobal.getKey("packageID") || '202'
  54. console.log("==原始PID==", _pid)
  55. let preVersion = data["preVersion_" + _pid] || "10.0.0"
  56. let adVideo = data["adVideo" + _pid] || "1"
  57. let openTD = data["openTD" + _pid] || "0"
  58. if (gameMethod.isEmpty(preVersion)) {
  59. Config.pid = ZeroGlobal.getKey("packageID") || '202'
  60. Config.policy = data.policy
  61. Config.kefu = data.kefu
  62. Config.showTips = data.showTips
  63. Config.showTipType = data.showTipType
  64. Config.showAgeTip = data.showAgeTip
  65. Config.showBgType = data.showBgType
  66. Config.adVideo = adVideo
  67. Config.openTD = openTD
  68. Config.beianUrl = data.beianUrl
  69. console.log("获取远程版本号失败,设置pid==", Config.pid)
  70. cb()
  71. return
  72. }
  73. console.log("==远程版本号==", preVersion)
  74. console.log("==本地版本号==", Config.appVersion)
  75. let compare = FormulaCom.compareVersion(Config.appVersion, preVersion)
  76. console.log("==版本对比==", compare)
  77. Config.showTips = data.showTips
  78. Config.showTipType = data.showTipType
  79. Config.showAgeTip = data.showAgeTip
  80. Config.showBgType = data.showBgType
  81. Config.openTD = openTD
  82. if (compare >= 0) {
  83. // 是审核版本,进入审核服
  84. if (_pid == "102") {
  85. Config.pid = "103"
  86. Config.showBgType = "0"
  87. } else if (_pid == "202") {
  88. Config.pid = "201"
  89. Config.showBgType = "0"
  90. } else if (_pid == "902") {
  91. Config.pid = "901"
  92. } else if (pidSwitch[_pid]) {
  93. Config.pid = "" + pidSwitch[_pid]
  94. Config.showTips = data.shShowTips
  95. Config.showTipType = data.shShowTipType
  96. if (data["adVideo" + Config.pid]) {
  97. Config.adVideo = data["adVideo" + Config.pid];//用切服后的pid取广告配置
  98. }
  99. }
  100. } else {
  101. Config.pid = ZeroGlobal.getKey("packageID") || '202'
  102. }
  103. Config.policy = data.policy
  104. Config.kefu = data.kefu
  105. Config.adVideo = adVideo
  106. console.log("设置PID:", Config.pid)
  107. console.log("policy:", Config.policy)
  108. console.log("kefu:", Config.kefu)
  109. console.log("showTips:", Config.showTips)
  110. console.log("showTipType:", Config.showTipType)
  111. console.log("showAgeTip:", Config.showAgeTip)
  112. console.log("showBgType:", Config.showBgType)
  113. console.log("adVideo:", Config.adVideo)
  114. console.log("openTD:", Config.openTD)
  115. cb()
  116. }
  117. })
  118. } else {
  119. Config.pid = ZeroGlobal.getKey("packageID") || '1'
  120. cb()
  121. }
  122. }
  123. }