ATAndroidJS2.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. declare const jsb: any;
  2. // const classJavaName = "org/cocos2dx/javascript/cocosjs/ATJSBridge";
  3. // const classJavaParamName = "com/cocos/service/AppActivity";
  4. // const Cocos2dxHelper = "org/cocos2dx/lib/Cocos2dxHelper";
  5. const classJavaName = "org/cocos2dx/javascript/cocosjs/ATJSBridge";
  6. const classJavaParamName = "org/cocos2dx/javascript/AppActivity";
  7. const Cocos2dxHelper = "org/cocos2dx/lib/Cocos2dxHelper";
  8. const placementId="n1g03bq8qkeckn";//正式的
  9. //const testPlacementId="n66f7c61b71d4c";//测试专用
  10. //const testPlacementIdForDzk="n67122e8932a3d";//打砖块的
  11. /**
  12. * 打砖块的
  13. */
  14. //const testPlacementIdForDzk = "n67122e8932a3d";
  15. export enum AdType {
  16. Rewwarded = 'rewwarded',
  17. Inter = 'inter',
  18. Open = 'open',
  19. Banner= 'banner'
  20. }
  21. interface ATAndroidJS {
  22. getDeviceModel(): string;
  23. getSystemVersion(): string;
  24. getDeviceManufacturer(): string;
  25. getCurrentLocale(): string;
  26. getTimeZone(): string;
  27. getCountry(): string;
  28. getMediaType(): string;
  29. getDeviceId(): string;
  30. getVersionCode(): string;
  31. getVersionName(): string;
  32. getPackageName(): string;
  33. getAppInstall(): string;
  34. getAppInstandId(): string;
  35. printJsLog(msg: string): void;
  36. initSDK(appid: string, appkey: string): void;
  37. initCustomMap(customMap: string): void;
  38. setPlacementCustomMap(placementId: string, customMap: string): void;
  39. setGDPRLevel(level: number): void;
  40. getGDPRLevel(): number;
  41. getUserLocation(callbackMethod: string): void;
  42. showGDPRAuth(): void;
  43. setLogDebug(debug: boolean): void;
  44. deniedUploadDeviceInfo(deniedInfo: string): void;
  45. allInfo(): string;
  46. makePostRequestWithXhr: (data: string) => void;
  47. getLanguage(): string;
  48. getInstanceId(): string;
  49. getInfomation(): string;
  50. getAdId(): string;
  51. getDeviceUserId(): string;
  52. getPlacementId(): string;
  53. getPlacementId2(adType: AdType): string;
  54. getUserAgent(): string;
  55. getBuildId(): string;
  56. getDeviceHardWare(): string;
  57. getScreenResolution(): string;
  58. getScreenDenstiy(): string;
  59. getNetworkType(): string;
  60. getSdkApi(): string;
  61. getDeviceBRAND(): string;
  62. }
  63. const ATAndroidJS: ATAndroidJS = {
  64. getDeviceModel: function () {
  65. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceModel", "()Ljava/lang/String;");
  66. },
  67. getSystemVersion: function () {
  68. return jsb.reflection.callStaticMethod(classJavaParamName, "getOSVersion", "()Ljava/lang/String;");
  69. },
  70. getDeviceManufacturer: function () {
  71. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceManufacturer", "()Ljava/lang/String;");
  72. },
  73. getCurrentLocale: function () {
  74. return jsb.reflection.callStaticMethod(classJavaParamName, "getCurrentLocale", "()Ljava/lang/String;");
  75. },
  76. getTimeZone: function () {
  77. return jsb.reflection.callStaticMethod(classJavaParamName, "getTimeZone", "()Ljava/lang/String;");
  78. },
  79. getCountry: function () {
  80. //console.log('zh:获取国家s')
  81. return jsb.reflection.callStaticMethod(classJavaParamName, "getCountry", "()Ljava/lang/String;");
  82. },
  83. getMediaType: function () {
  84. return jsb.reflection.callStaticMethod(classJavaParamName, "getMediaType", "()Ljava/lang/String;");
  85. },
  86. getDeviceId: function () {
  87. return jsb.reflection.callStaticMethod(classJavaParamName, "getAndroidId", "()Ljava/lang/String;");
  88. },
  89. getVersionCode: function () {
  90. return jsb.reflection.callStaticMethod(classJavaParamName, "getVersionCode", "()Ljava/lang/String;");
  91. },
  92. getVersionName: function () {
  93. return jsb.reflection.callStaticMethod(classJavaParamName, "getVersionName", "()Ljava/lang/String;");
  94. },
  95. getPackageName: function () {
  96. return jsb.reflection.callStaticMethod(classJavaParamName, "getPackageNames", "()Ljava/lang/String;");
  97. },
  98. getAppInstall: function () {
  99. return jsb.reflection.callStaticMethod(classJavaParamName, "getAppInstall", "()Ljava/lang/String;");
  100. },
  101. getAppInstandId: function () {
  102. // return jsb.reflection.callStaticMethod(classJavaParamName, "getInstanceId", "()Ljava/lang/String;");
  103. return jsb.reflection.callStaticMethod(classJavaParamName, "getInstanceIds", "()Ljava/lang/String;");
  104. },
  105. getUserAgent: function () {
  106. return jsb.reflection.callStaticMethod(classJavaParamName, "getUserAgent", "()Ljava/lang/String;");
  107. },
  108. getScreenResolution: function () {
  109. return jsb.reflection.callStaticMethod(classJavaParamName, "getScreenResolution", "()Ljava/lang/String;");
  110. },
  111. getScreenDenstiy: function () {
  112. return jsb.reflection.callStaticMethod(classJavaParamName, "getScreenDenstiy", "()Ljava/lang/String;");
  113. },
  114. getNetworkType: function () {
  115. return jsb.reflection.callStaticMethod(classJavaParamName, "getNetworkType", "()Ljava/lang/String;");
  116. },
  117. getDeviceHardWare: function () {
  118. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceHardware", "()Ljava/lang/String;");
  119. },
  120. getDeviceBRAND: function () {
  121. return jsb.reflection.callStaticMethod(classJavaParamName, "getDeviceBRAND", "()Ljava/lang/String;");
  122. },
  123. getSdkApi: function () {
  124. return jsb.reflection.callStaticMethod(classJavaParamName, "getSdkApi", "()Ljava/lang/String;");
  125. },
  126. printJsLog: function (msg: string) {
  127. if (msg !== undefined && msg !== null) {
  128. jsb.reflection.callStaticMethod("android/util/Log", "i", "(Ljava/lang/String;Ljava/lang/String;)I", "AT-Cocos-JS", msg);
  129. }
  130. },
  131. initSDK: function (appid: string, appkey: string) {
  132. jsb.reflection.callStaticMethod(classJavaParamName, "initSDK", "(Ljava/lang/String;Ljava/lang/String;)V", appid, appkey);
  133. },
  134. initCustomMap: function (customMap: string) {
  135. jsb.reflection.callStaticMethod(classJavaParamName, "initCustomMap", "(Ljava/lang/String;)V", customMap);
  136. },
  137. setPlacementCustomMap: function (placementId: string, customMap: string) {
  138. jsb.reflection.callStaticMethod(classJavaParamName, "setPlacementCustomMap", "(Ljava/lang/String;Ljava/lang/String;)V", placementId, customMap);
  139. },
  140. setGDPRLevel: function (level: number) {
  141. jsb.reflection.callStaticMethod(classJavaParamName, "setGDPRLevel", "(I)V", level);
  142. },
  143. getGDPRLevel: function () {
  144. return jsb.reflection.callStaticMethod(classJavaParamName, "getGDPRLevel", "()I");
  145. },
  146. getUserLocation: function (callbackMethod: string) {
  147. jsb.reflection.callStaticMethod(classJavaParamName, "getUserLocation", "(Ljava/lang/String;)V", callbackMethod);
  148. },
  149. showGDPRAuth: function () {
  150. jsb.reflection.callStaticMethod(classJavaParamName, "showGDPRAuth", "()V");
  151. },
  152. setLogDebug: function (debug: boolean) {
  153. jsb.reflection.callStaticMethod(classJavaParamName, "setLogDebug", "(Z)V", debug);
  154. },
  155. deniedUploadDeviceInfo: function (deniedInfo: string) {
  156. jsb.reflection.callStaticMethod(classJavaParamName, "deniedUploadDeviceInfo", "(Ljava/lang/String;)V", deniedInfo);
  157. },
  158. getLanguage: function () {
  159. return jsb.reflection.callStaticMethod(classJavaParamName, "getLanguage", "()Ljava/lang/String;");
  160. },
  161. getInstanceId: function () {
  162. return jsb.reflection.callStaticMethod(classJavaParamName, "getInstanceIds", "()Ljava/lang/String;");
  163. },
  164. getInfomation: function () {
  165. return jsb.reflection.callStaticMethod(classJavaParamName, "getInfos", "()Ljava/lang/String;");
  166. },
  167. getBuildId: function () {
  168. return jsb.reflection.callStaticMethod(classJavaParamName, "getBuildId", "()Ljava/lang/String;");
  169. },
  170. getAdId: function () {
  171. return jsb.reflection.callStaticMethod(classJavaParamName, "getAdId", "()Ljava/lang/String;");
  172. },
  173. // getPlacementId: function(){
  174. // // return placementId;
  175. // return testPlacementId;
  176. // // return testPlacementIdForDzk;
  177. // },
  178. getPlacementId: function () {
  179. // return placementId;
  180. //return testPlacementId;
  181. // return testPlacementIdForDzk;
  182. //兼容老的方法
  183. return this.getPlacementId2(AdType.Rewwarded);
  184. },
  185. getPlacementId2: function (adType: AdType) {
  186. switch (adType) {
  187. case AdType.Rewwarded:
  188. console.log('这是激励广告');
  189. //var placementId="n1g03bq8qkeckn";//正式的
  190. // var testPlacementId="n66f7c61b71d4c";//测试专用
  191. // var testPlacementIdForDzk="n67122e8932a3d";//打砖块的
  192. return placementId;
  193. break;
  194. case AdType.Inter:
  195. console.log('这是插屏广告');
  196. var InterId = "n1g03bq8qkel3e";
  197. return InterId;
  198. break;
  199. case AdType.Open:
  200. console.log('这是开屏广告');
  201. var openId = "n1g03bq8qkeogj";
  202. return openId;
  203. break;
  204. case AdType.Banner:
  205. var bannerId = "n1g03bq8qkei7i";
  206. return bannerId;
  207. break;
  208. default:
  209. console.log('未知广告类型');
  210. }
  211. return ""
  212. },
  213. /**
  214. * 本类封装了获取设备所有信息的方法,返回一个json字符串
  215. * @returns json string
  216. */
  217. allInfo: function () {
  218. const info = {
  219. systemVersion: this.getSystemVersion(),
  220. deviceModel: this.getDeviceModel(),
  221. deviceManufacturer: this.getDeviceManufacturer(),
  222. country: this.getCountry(),
  223. timeZone: this.getTimeZone(),
  224. device: this.getDeviceId(),
  225. platform: 'Android',
  226. language: this.getLanguage(),
  227. versionCode: this.getVersionCode(),
  228. versionName: this.getVersionName(),
  229. packageName: this.getPackageName(),
  230. adId: this.getAdId(),
  231. information: this.getInfomation(),
  232. appInstantsId: this.getAppInstandId(),
  233. mediaType: this.getMediaType(),
  234. userIp: '',
  235. gameId: '36',
  236. userAgent: this.getUserAgent(),
  237. buildId: this.getBuildId(),
  238. deviceHardware: this.getDeviceHardWare(),
  239. screenResolution: this.getScreenResolution(),
  240. screenDenstiy: this.getScreenDenstiy(),
  241. networkType: this.getNetworkType(),
  242. sdkApi: this.getSdkApi(),
  243. deviceBrand: this.getDeviceBRAND()
  244. };
  245. return JSON.stringify(info);
  246. },
  247. getDeviceUserId: function () {
  248. return this.getDeviceId()
  249. },
  250. /**
  251. * 发送HTTP数据到服务器
  252. * @param data
  253. */
  254. makePostRequestWithXhr: function (data: string) {
  255. //https://api.eastasiagame.com/
  256. //var url = "https://screwapi.gamefunserver.com/api/game/postData"; 这是最开始的接口
  257. //https://api.eastasiagame.com/
  258. var url = "https://api.eastasiagame.com/api/game/postData";//印尼的?
  259. var xhr = new XMLHttpRequest();
  260. xhr.open('POST', url, true); // 第三个参数表示异步执行
  261. xhr.setRequestHeader('Content-Type', 'application/json');
  262. // 定义请求成功时的回调函数
  263. xhr.onload = function () {
  264. if (xhr.status >= 200 && xhr.status < 300) {
  265. console.log('请求成功:', xhr.responseText);
  266. //ATSDK.printLog("zhangsan:请求成功="+xhr.responseText);
  267. } else {
  268. console.error('请求失败: ' + xhr.status);
  269. // ATSDK.printLog("zhangsan:请求失败="+xhr.status);
  270. }
  271. };
  272. xhr.onerror = function () {
  273. console.error('网络请求发生错误');
  274. // ATSDK.printLog("zhangsan:网络请求发生错误");
  275. };
  276. // var data = JSON.stringify({ key1: 'value1', key2: 'value2' });
  277. xhr.send(data);
  278. }
  279. };
  280. export default ATAndroidJS;