埋点工具类

56 阅读1分钟

示例:EventTracker 埋点工具类

class EventTracker {
  constructor() {
    // 定义埋点事件名称和默认参数
    this.events = {
      switch: 'setting_switch_event',
      click: 'setting_click_event'
    };
  }

  // 通用发送埋点方法
  send(eventName, data) {
    // 这里模拟调用底层埋点接口
    // 真实项目用 window.Extention.Report.sendInfo 或类似方法
    console.log(`[埋点] 事件: ${eventName}`, data);
  }

  // 上报开关事件
  reportSwitch(position, setResult, status) {
    // 转换布尔状态为字符串
    if (typeof status === 'boolean') {
      status = status ? 'on' : 'off';
    }
    this.send(this.events.switch, {
      position,
      setResult,
      status
    });
  }

  // 上报点击事件(示例)
  reportClick(buttonName, extraInfo = {}) {
    this.send(this.events.click, {
      button: buttonName,
      ...extraInfo
    });
  }
}

使用示例

const tracker = new EventTracker();

// 用户开启自动同步开关,设置成功
tracker.reportSwitch('autosync', '1', true);

// 用户点击“保存”按钮
tracker.reportClick('save_button', { page: 'settings' });

说明

  • constructor 里初始化事件名,方便维护和修改
  • send 是统一的埋点发送接口(这里用 console.log 模拟)
  • 通过不同的方法(reportSwitchreportClick)封装不同类型的埋点
  • 自动将布尔状态转成 'on' / 'off',方便后台统一解析