ATAndroidJS2.ts 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. declare const jsb: any;
  2. const classJavaName = "org/cocos2dx/javascript/cocosjs/ATJSBridge";
  3. const classJavaParamName = "org/cocos2dx/javascript/AppActivity";
  4. const Cocos2dxHelper = "org/cocos2dx/lib/Cocos2dxHelper";
  5. interface ATAndroidJS {
  6. getDeviceModel(): string;
  7. getSystemVersion(): string;
  8. getDeviceManufacturer(): string;
  9. getCurrentLocale(): string;
  10. getTimeZone(): string;
  11. getCountry(): string;
  12. getMediaType(): string;
  13. getDeviceId(): string;
  14. getVersionCode(): string;
  15. getVersionName(): string;
  16. getPackageName(): string;
  17. getAppInstall(): string;
  18. getAppInstandId(): string;
  19. printJsLog(msg: string): void;
  20. initSDK(appid: string, appkey: string): void;
  21. initCustomMap(customMap: string): void;
  22. setPlacementCustomMap(placementId: string, customMap: string): void;
  23. setGDPRLevel(level: number): void;
  24. getGDPRLevel(): number;
  25. getUserLocation(callbackMethod: string): void;
  26. showGDPRAuth(): void;
  27. setLogDebug(debug: boolean): void;
  28. deniedUploadDeviceInfo(deniedInfo: string): void;
  29. allInfo(): string;
  30. makePostRequestWithXhr: (data: string) => void;
  31. getLanguage(): string;
  32. getInstanceId(): string;
  33. getScreenResolution(): string;
  34. getScreenDenstiy(): string;
  35. getBuildID(): string;
  36. getDeviceHardware(): string
  37. getInfomation(): string;
  38. getAdId(): string;
  39. getDeviceUserId(): string;
  40. getPlacementID(): string;
  41. getNetworkType(): string;
  42. getAndroidAPI(): string;
  43. getDeviceBRAND(): string;
  44. getUserAgent(): string;
  45. }
  46. const ATAndroidJS: ATAndroidJS = {
  47. getDeviceModel: function () {
  48. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceModel", "()Ljava/lang/String;");
  49. },
  50. getSystemVersion: function () {
  51. return jsb.reflection.callStaticMethod(classJavaParamName, "getOSVersion", "()Ljava/lang/String;");
  52. },
  53. getDeviceManufacturer: function () {
  54. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceManufacturer", "()Ljava/lang/String;");
  55. },
  56. getCurrentLocale: function () {
  57. return jsb.reflection.callStaticMethod(classJavaParamName, "getCurrentLocale", "()Ljava/lang/String;");
  58. },
  59. getTimeZone: function () {
  60. return jsb.reflection.callStaticMethod(classJavaParamName, "getTimeZone", "()Ljava/lang/String;");
  61. },
  62. getCountry: function () {
  63. return jsb.reflection.callStaticMethod(classJavaParamName, "getCountry", "()Ljava/lang/String;");
  64. },
  65. getMediaType: function () {
  66. return jsb.reflection.callStaticMethod(classJavaParamName, "getMediaType", "()Ljava/lang/String;");
  67. },
  68. getDeviceId: function () {
  69. return jsb.reflection.callStaticMethod(classJavaParamName, "getAndroidId", "()Ljava/lang/String;");
  70. },
  71. getVersionCode: function () {
  72. return jsb.reflection.callStaticMethod(classJavaParamName, "getVersionCode", "()Ljava/lang/String;");
  73. },
  74. getVersionName: function () {
  75. return jsb.reflection.callStaticMethod(classJavaParamName, "getVersionName", "()Ljava/lang/String;");
  76. },
  77. getPackageName: function () {
  78. return jsb.reflection.callStaticMethod(classJavaParamName, "getPackageNames", "()Ljava/lang/String;");
  79. },
  80. getAppInstall: function () {
  81. return jsb.reflection.callStaticMethod(classJavaParamName, "getAppInstall", "()Ljava/lang/String;");
  82. },
  83. getAppInstandId: function () {
  84. // return jsb.reflection.callStaticMethod(classJavaParamName, "getInstanceId", "()Ljava/lang/String;");
  85. return jsb.reflection.callStaticMethod(classJavaParamName, "getInstanceIds", "()Ljava/lang/String;");
  86. },
  87. printJsLog: function (msg: string) {
  88. if (msg !== undefined && msg !== null) {
  89. jsb.reflection.callStaticMethod("android/util/Log", "i", "(Ljava/lang/String;Ljava/lang/String;)I", "AT-Cocos-JS", msg);
  90. }
  91. },
  92. initSDK: function (appid: string, appkey: string) {
  93. jsb.reflection.callStaticMethod(classJavaParamName, "initSDK", "(Ljava/lang/String;Ljava/lang/String;)V", appid, appkey);
  94. },
  95. initCustomMap: function (customMap: string) {
  96. jsb.reflection.callStaticMethod(classJavaParamName, "initCustomMap", "(Ljava/lang/String;)V", customMap);
  97. },
  98. setPlacementCustomMap: function (placementId: string, customMap: string) {
  99. jsb.reflection.callStaticMethod(classJavaParamName, "setPlacementCustomMap", "(Ljava/lang/String;Ljava/lang/String;)V", placementId, customMap);
  100. },
  101. setGDPRLevel: function (level: number) {
  102. jsb.reflection.callStaticMethod(classJavaParamName, "setGDPRLevel", "(I)V", level);
  103. },
  104. getGDPRLevel: function () {
  105. return jsb.reflection.callStaticMethod(classJavaParamName, "getGDPRLevel", "()I");
  106. },
  107. getUserLocation: function (callbackMethod: string) {
  108. jsb.reflection.callStaticMethod(classJavaParamName, "getUserLocation", "(Ljava/lang/String;)V", callbackMethod);
  109. },
  110. showGDPRAuth: function () {
  111. jsb.reflection.callStaticMethod(classJavaParamName, "showGDPRAuth", "()V");
  112. },
  113. setLogDebug: function (debug: boolean) {
  114. jsb.reflection.callStaticMethod(classJavaParamName, "setLogDebug", "(Z)V", debug);
  115. },
  116. deniedUploadDeviceInfo: function (deniedInfo: string) {
  117. jsb.reflection.callStaticMethod(classJavaParamName, "deniedUploadDeviceInfo", "(Ljava/lang/String;)V", deniedInfo);
  118. },
  119. getLanguage: function () {
  120. return jsb.reflection.callStaticMethod(classJavaParamName, "getLanguage", "()Ljava/lang/String;");
  121. },
  122. getInstanceId: function () {
  123. return jsb.reflection.callStaticMethod(classJavaParamName, "getInstanceIds", "()Ljava/lang/String;");
  124. },
  125. getScreenResolution: function () {
  126. return jsb.reflection.callStaticMethod(classJavaParamName, "getScreenResolution", "()Ljava/lang/String;");
  127. },
  128. getScreenDenstiy: function () {
  129. return jsb.reflection.callStaticMethod(classJavaParamName, "getScreenDenstiy", "()Ljava/lang/String;");
  130. },
  131. getBuildID: function () {
  132. return jsb.reflection.callStaticMethod(classJavaParamName, "getBuildID", "()Ljava/lang/String;");
  133. },
  134. getDeviceHardware: function () {
  135. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceHardware", "()Ljava/lang/String;");
  136. },
  137. getInfomation: function () {
  138. return jsb.reflection.callStaticMethod(classJavaParamName, "getInfos", "()Ljava/lang/String;");
  139. },
  140. getAdId: function () {
  141. return jsb.reflection.callStaticMethod(classJavaParamName, "getAdId", "()Ljava/lang/String;");
  142. },
  143. getNetworkType: function () {
  144. return jsb.reflection.callStaticMethod(classJavaParamName, "getNetworkType", "()Ljava/lang/String;");
  145. },
  146. getAndroidAPI: function () {
  147. return jsb.reflection.callStaticMethod(classJavaParamName, "getAndroidAPI", "()Ljava/lang/String;");
  148. },
  149. getDeviceBRAND: function () {
  150. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceBRAND", "()Ljava/lang/String;");
  151. },
  152. getUserAgent: function () {
  153. return jsb.reflection.callStaticMethod(classJavaParamName, "getUserAgent", "()Ljava/lang/String;");
  154. },
  155. getPlacementID: function () {
  156. return "n66f7c61b71d4c";
  157. },
  158. /**
  159. * 本类封装了获取设备所有信息的方法,返回一个json字符串
  160. * @returns json string
  161. */
  162. allInfo: function () {
  163. const info = {
  164. systemVersion: this.getSystemVersion(),
  165. deviceModel: this.getDeviceModel(),
  166. deviceManufacturer: this.getDeviceManufacturer(),
  167. country: this.getCountry(),
  168. timeZone: this.getTimeZone(),
  169. device: this.getDeviceId(),
  170. platform: 'Android',
  171. language: this.getLanguage(),
  172. versionCode: this.getVersionCode(),
  173. versionName: this.getVersionName(),
  174. packageName: this.getPackageName(),
  175. adId: this.getAdId(),
  176. information: this.getInfomation(),
  177. appInstantsId: this.getAppInstandId(),
  178. screenResolution: this.getScreenResolution(),
  179. screenDenstiy: this.getScreenDenstiy(),
  180. buildId: this.getBuildID(),
  181. deviceHardware: this.getDeviceHardware(),
  182. mediaType: this.getMediaType(),
  183. userIp: '',
  184. gameId: '16',
  185. networkType: this.getNetworkType(),
  186. sdkApi: this.getAndroidAPI(),
  187. deviceBrand: this.getDeviceBRAND(),
  188. userAgent: this.getUserAgent(),
  189. };
  190. return JSON.stringify(info);
  191. },
  192. getDeviceUserId: function () {
  193. return this.getDeviceId()
  194. },
  195. /**
  196. * 发送HTTP数据到服务器
  197. * @param data
  198. */
  199. makePostRequestWithXhr: function (data: string) {
  200. var url = "https://screwapi.gamefunserver.com/api/game/postData";
  201. var xhr = new XMLHttpRequest();
  202. xhr.open('POST', url, true); // 第三个参数表示异步执行
  203. xhr.setRequestHeader('Content-Type', 'application/json');
  204. // 定义请求成功时的回调函数
  205. xhr.onload = function () {
  206. if (xhr.status >= 200 && xhr.status < 300) {
  207. console.log('请求成功:', xhr.responseText);
  208. //ATSDK.printLog("zhangsan:请求成功="+xhr.responseText);
  209. } else {
  210. console.error('请求失败: ' + xhr.status);
  211. // ATSDK.printLog("zhangsan:请求失败="+xhr.status);
  212. }
  213. };
  214. xhr.onerror = function () {
  215. console.error('网络请求发生错误');
  216. // ATSDK.printLog("zhangsan:网络请求发生错误");
  217. };
  218. // var data = JSON.stringify({ key1: 'value1', key2: 'value2' });
  219. xhr.send(data);
  220. }
  221. };
  222. export default ATAndroidJS;