示例:EventTracker 埋点工具类
class EventTracker {
constructor() {
this.events = {
switch: 'setting_switch_event',
click: 'setting_click_event'
};
}
send(eventName, data) {
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 模拟)
- 通过不同的方法(
reportSwitch、reportClick)封装不同类型的埋点
- 自动将布尔状态转成
'on' / 'off',方便后台统一解析