MiddleMgr.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. /* 中间层接口规范:
  2. 1、各个Middle 仅父类写注释,子类不写注释;
  3. 2、各个Middle的子类 里的方法排序要和 父类 保持一致;
  4. 3、java 里的方法排序要和 Middle js 保持一致;
  5. 4、中间结果的方法,放到 MiddleMgr 中;
  6. */
  7. cc.Class({
  8. init () {
  9. G.MiddleDevice = new (require('MiddleDevice'))();
  10. G.MiddleAuth = new (require('MiddleAuth'))();
  11. G.MiddlePay = new (require('MiddlePay'))();
  12. G.MiddleUpdate = new (require('MiddleUpdate'))();
  13. },
  14. handleEventJson (eventJson) {
  15. let eventData = JSON.parse(eventJson);
  16. this.handleEvent(eventData);
  17. },
  18. /**
  19. * 收到JNI发上来的事件
  20. *
  21. * @author Pyden
  22. * @date 2020-03-11
  23. * @param {Object} eventData
  24. */
  25. handleEvent (eventData) {
  26. G.LogUtils.warn('MiddleMgr handleEvent', eventData);
  27. /* eventData参数:
  28. * @param {String} module
  29. * @param {String} eventKey
  30. * @param {Integer} code
  31. * @param {String} errorMsg
  32. * @param {Object} data
  33. */
  34. let moduleName = eventData.module;
  35. switch (moduleName) {
  36. case 'device': {
  37. G.MiddleDevice.handleEvent(eventData);
  38. break;
  39. }
  40. case 'auth': {
  41. G.MiddleAuth.handleEvent(eventData);
  42. break;
  43. }
  44. case 'pay': {
  45. G.MiddlePay.handleEvent(eventData);
  46. break;
  47. }
  48. case 'update': {
  49. G.MiddleUpdate.handleEvent(eventData);
  50. break;
  51. }
  52. default:
  53. break;
  54. }
  55. },
  56. //* ************* 公共方法 ************* *//
  57. /**
  58. * 获取脚本号
  59. *
  60. * @author Ture
  61. * @date 2019-04-23
  62. * @returns {Integer}
  63. */
  64. getResVersion () {
  65. return G.RES_VERSION;
  66. },
  67. /**
  68. * 获取游戏版本号(含脚本号)
  69. *
  70. * @author Ture
  71. * @date 2019-04-23
  72. * @returns {String}
  73. */
  74. getVersion () {
  75. let apkVer = G.MiddleDevice.getVersionName();
  76. let resVer = this.getResVersion();
  77. let ret = cc.js.formatStr('%s.%s', apkVer, resVer);
  78. return ret;
  79. },
  80. /**
  81. * 获取运营商名称
  82. *
  83. * @author Ture
  84. * @date 2019-04-23
  85. * @returns {String}
  86. */
  87. getOperatorName () {
  88. let map = {'1': '移动', '2': '联通', '3': '电信'};
  89. let operator = G.MiddleDevice.getOperator();
  90. operator = operator == undefined ? 0 : operator;
  91. let ret = map[operator] == undefined ? '未知' : map[operator];
  92. return ret;
  93. },
  94. /**
  95. * 获取当前网络名称
  96. *
  97. * @author Ture
  98. * @date 2019-04-23
  99. * @returns {String}
  100. */
  101. getApnTypeName () {
  102. let map = {'-1': '无网络', '1': 'WiFi', '2': 'G', '3': '2/3G', '4': '4G'};
  103. let apn = G.MiddleDevice.getApnType();
  104. apn = apn == undefined ? 0 : apn;
  105. let ret = map[apn] == undefined ? '未知' : map[apn];
  106. return ret;
  107. },
  108. /**
  109. * 获取UDID
  110. *
  111. * @author Pyden
  112. * @date 2020-02-13
  113. * @returns {String}
  114. */
  115. getUDID () {
  116. let originUDID = G.MiddleDevice.getUDID();
  117. return originUDID;
  118. },
  119. /**
  120. * 获取UUID
  121. *
  122. * @author Pyden
  123. * @date 2020-02-13
  124. * @returns {String}
  125. */
  126. getUUID () {
  127. let originUUID = G.MiddleAuth.getUUID();
  128. return originUUID;
  129. },
  130. /**
  131. * 获取IDFA(加密后)
  132. * cc.js.formatStr('%s|%s|%s|%s|%s|%s', imeiMd5, androidIdMd5, oaid, mac, idfaIos, openUuidIos);
  133. *
  134. * @author Pyden
  135. * @date 2020-05-08
  136. * @returns
  137. */
  138. getIDFAEncode () {
  139. let idfa = G.MiddleDevice.getIDFA();
  140. let list = idfa.split('|');
  141. let imei = list[0];
  142. let androidId = list[1];
  143. let oaid = list[2];
  144. let mac = list[3];
  145. let idfaIos = list[4];
  146. let openUuidIos = list[5];
  147. let imeiMd5 = '';
  148. if (imei && imei.length > 0) {
  149. imeiMd5 = MD5.hex(imei);
  150. }
  151. let androidIdMd5 = '';
  152. if (androidId && androidId.length > 0) {
  153. androidIdMd5 = MD5.hex(androidId);
  154. }
  155. if (oaid == undefined) {
  156. oaid = '';
  157. }
  158. if (mac == undefined) {
  159. mac = '';
  160. }
  161. if (idfaIos == undefined) {
  162. idfaIos = '';
  163. }
  164. if (openUuidIos == undefined) {
  165. openUuidIos = '';
  166. }
  167. let ret = cc.js.formatStr('%s|%s|%s|%s|%s|%s', imeiMd5, androidIdMd5, oaid, mac, idfaIos, openUuidIos);
  168. return ret;
  169. },
  170. /**
  171. * 获取游戏配置
  172. *
  173. * @author Pyden
  174. * @date 2020-03-20
  175. */
  176. getGameConfig () {
  177. return {
  178. auth: {
  179. list: [{name: 'Web授权', sdkName: 'Web', authType: JMC.AUTHORIZE_TYPE.NORMAL}]
  180. },
  181. device: {
  182. sdkName: 'WebDevice'
  183. },
  184. pay: {
  185. list: []
  186. },
  187. update: {
  188. sdkName: 'WebUpdate'
  189. }
  190. };
  191. }
  192. });