TrackingModule.ets 1.38 KB
import sensors from '@sensorsdata/analytics';
import { common } from '@kit.AbilityKit';
import { HostEnum, HostManager } from 'wdNetwork/Index';

/// 统计埋点模块
export class TrackingModule {

  private static SA_DATA_SERVER_URL_PRODUCT = "https://data.pdnews.cn/sa?project=PDChinese"
  private static SA_DATA_SERVER_URL_TEST = "https://data.pdnews.cn/sa?project=PDChineseTest"

  private static _init = false
  static getHasInit() {
    return TrackingModule._init;
  }

  /// 初始化
  static startup(context: common.UIAbilityContext) : Promise<void> {

    return new Promise((resolve) => {
      const isOnlineEnv = HostManager.getHost() === HostEnum.HOST_PRODUCT

      sensors.init({
        //TODO: 服务器接收地址 暂时用测试环境的
        server_url: isOnlineEnv ? TrackingModule.SA_DATA_SERVER_URL_TEST : TrackingModule.SA_DATA_SERVER_URL_TEST,
        // Ability 上下文
        context: context,
        // 是否显示日志
        show_log: true,
        // 是否开启采集位置信息,需要 app 授权,默认 false
        enable_track_location: true,
        // 是否开启批量发送,默认 false
        batch_send: true,
        // 数据发送超时时间
        datasend_timeout: 10000,
        // 开启 App 打通 H5
        app_js_bridge: false
      }).then((inited) => {
        TrackingModule._init = inited

        resolve()
      });
    })
  }


}