xy-sea / web-see

前端监控SDK,可用来收集并上报:代码报错、性能数据、页面录屏、用户行为、白屏检测等个性化指标数据
1.13k stars 256 forks source link

想咨询下userId有没方法改成动态配置的 #27

Closed Mirroraoaoao closed 1 year ago

Mirroraoaoao commented 1 year ago

1.想咨询下userId有没方法改成动态配置的,想和我们业务系统的userId挂钩 2.上报接口能不能添加自己的额外字段,token,用户信息之类

xy-sea commented 1 year ago

可以通过自定义getUserId方法,动态配置userId; 通过beforeDataReport方法,添加需要上报的数据

Vue.use(webSee, { dsn: 'http://localhost:8083/reportData', apikey: 'abcd', silentRecordScreen: true, silentWhiteScreen: true, skeletonProject: true, // 自定义获取用户id的方法 getUserId() { return localStorage.getItem('userId') || ''; }, // 数据上报前的钩子 beforeDataReport(data) { return { ...data, // 以下为自定义添加的信息 token: 'token', userInfo: { name: 'tom', age: 18, }, }; }, });

Mirroraoaoao commented 1 year ago

因为Vue.use是在main.js里面执行的(当时还没有用户信息),想在别的组件或者vuex里面修改部分webSee的配置信息。我现在是重新调用了一下 webSee的init方法 把配置参数传进去了 好像也行,不知道有没别的好点的办法

xy-sea commented 1 year ago

这个问题有两种方案提供参考: 第一简单粗暴型:在接口返回userId后才注册监控sdk: Vue.use(webSee, options),确保已经获取到了userId,但是之前的报错就捕获不到了 第二种 SDK新增一个开关的字段,获取userId之前先把需要上报的数据全部缓存起来,获取到userId后打开开关然后全部上报