自定义事件
你可能需要在录制 rrweb 事件的同时记录一些自定义事件,并让它们像其他事件一样被回放。自定义事件 API 正是为此而设计的。
开始录制后,我们可以调用 record.addCustomEvent API 来添加自定义事件。
js
import { record } from '@rrweb/record';
// start recording
record({
emit(event) {
...
}
})
// record some custom events at any time
record.addCustomEvent('submit-form', {
name: 'Adam',
age: 18
})
record.addCustomEvent('some-error', {
error
})addCustomEvent 接受两个参数。第一个是字符串类型的 tag,第二个是任意类型的 payload。
回放时,我们可以为自定义事件添加事件监听器,也可以在 rrweb-player 的时间轴中配置自定义事件的样式。
监听自定义事件
js
import { Replayer } from '@rrweb/replay';
const replayer = new Replayer(events);
replayer.on('custom-event', (event) => {
console.log(event.tag, event.payload);
});在 rrweb-player 中展示
js
new rrwebPlayer({
target: document.body,
props: {
events,
// configure the color of tag which will be displayed on the timeline
tags: {
'submit-form': '#21e676',
'some-error': 'red',
},
},
});