ttztsdk.ts 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { sys } from "cc";
  2. import { DataSdk } from "./datasdk";
  3. export class TTZtSdk {
  4. private static SaveKey = "ttzt_ext"
  5. private static ReportURL = "https://api.zt.y73s.cn/api/v1/conversion"
  6. private static extend: { [k: string]: any } = {};
  7. public static get openid() { return this.extend && this.extend.openid }
  8. public static get clickid() { return this.extend && this.extend.clickid }
  9. public static reportActive(openid?: string) {
  10. if (typeof window.tt === 'undefined' || !tt) {
  11. console.log("#### TTZtSdk #### 非字节平台不初始化")
  12. return;
  13. }
  14. console.log("#### TTZtSdk #### 初始化")
  15. // 加载历史记录
  16. let savedata = sys.localStorage.getItem(this.SaveKey);
  17. console.log("#### TTZtSdk #### 读取旧数据", savedata)
  18. if (savedata) {
  19. this.extend = JSON.parse(savedata)
  20. }
  21. // 如果已经激活, 不重复上报
  22. if (TTZtSdk.openid) {
  23. console.log("#### TTZtSdk #### 激活已经上报,不重复上报, openid:", TTZtSdk.openid, "clickid:", TTZtSdk.clickid)
  24. return;
  25. }
  26. let options = tt.getLaunchOptionsSync();
  27. let queryStr = JSON.stringify(options.query)
  28. let appid = options.extra.appId || options.query.appId
  29. console.debug("#### TTZtSdk #### appid:", appid, "query:", queryStr);
  30. if (openid) {
  31. this.reportActive$({
  32. appid: appid, // 请求来源:appid
  33. openid: openid,
  34. active_data: queryStr, // 激活相关数据 json字符串
  35. });
  36. } else {
  37. tt.login({
  38. force: true,
  39. success: (res: any) => {
  40. console.debug(`#### TTZtSdk #### login 调用成功code:${res.code} a_code:${res.anonymousCode}`);
  41. this.reportActive$({
  42. appid: appid, // 请求来源:appid
  43. code: res.code,
  44. anonvmous_code: res.anonymousCode,
  45. active_data: queryStr, // 激活相关数据 json字符串
  46. });
  47. },
  48. fail: (res: any) => {
  49. console.debug(`#### TTZtSdk #### login调用失败`, res);
  50. },
  51. });
  52. }
  53. }
  54. private static reportActive$(param: any) {
  55. tt.request({
  56. url: TTZtSdk.ReportURL,
  57. data: param,
  58. header: { "content-type": "application/json" },
  59. method: "POST",
  60. success: (res: any) => {
  61. console.log("#### TTZtSdk #### 数据上报成功", res.data)
  62. if (res.data.code == 0) {
  63. TTZtSdk.extend = {}
  64. TTZtSdk.extend.openid = res.data.data.openid;
  65. TTZtSdk.extend.clickid = res.data.data.clickid;
  66. let extStr = JSON.stringify(TTZtSdk.extend)
  67. console.log("#### TTZtSdk #### ext:", extStr)
  68. sys.localStorage.setItem(this.SaveKey, extStr)
  69. DataSdk.initReport(res.data.data.openid)
  70. }
  71. },
  72. fail: (res: any) => {
  73. console.log("#### TTZtSdk #### 数据上报失败", res.errMsg)
  74. },
  75. })
  76. }
  77. }