代码用例
<template>
<div :class="$options.name">
<el-button type="primary" @click="sendBeacon"
>navigator.sendBeacon 请求埋点接口 发送json对象数据</el-button
>
</div>
</template>
<script>
export default {
created() {
// 当网页卸载关闭的时候,记录用户行为
window.onunload = (event) => {
this.sendBeacon(); //关闭浏览器选项卡进行埋点记录
};
},
methods: {
sendBeacon() {
if (!navigator.sendBeacon) return;
let data = JSON.stringify({
ID: "adaba34fa4004ea699fac9ab473d1bfe",//用户行为触发受体对象资源ID
用户行为类型: "行为枚举值常量",
停留时长: 10 * 1000,//毫秒
操作起始时间: "2024-01-26 14:56:42",
操作结束时间: "2024-01-26 14:56:45",
});
navigator.sendBeacon(
`API接口地址路径`,
new Blob([data], { type: "application/x-www-form-urlencoded; charset=UTF-8" })
);
},
},
};
</script>