2.0.1 • Published 5 years ago
bt-web-logger v2.0.1
WebLogger
Description
Support
- 运行环境 : IE9+/Chrome65+/Firefox65+/Edge/Safri
- 操作系统 : Windows/Ubuntu/Mac OS/Android/IOS
- 项目要求 : WEB SPA(不支持动态路由)
- 技术要求 : ECMAScript 2015+
Quick Start
Step1: 安装依赖包
npm install crypto-js --save
npm install xlsx --save
Step2:在项目的入口js中引入WebLogger SDK
import { WebLogger } from 'web-logger';
Step3:运行WebLogger
import proConf from '../.config/project.conf.json';
const hasSendLog = true;
const debug = true;
let mode, secretkey, appKey;
switch (proConf.mode) {
case 'production':
mode = 'production';
secretkey = '76bff9b0700e3ddw2w1320b2be8f59435';
appKey = '3480301w235';
break;
case 'preProduction':
mode = 'preProduction';
secretkey = '76bff9b0700e3ddw2w1320b2be8f59435';
appKey = '3480301w235';
break;
case 'test':
mode = 'test';
secretkey = '76bff9b0700e3ddw2w1320b2be8f59435';
appKey = '3480301w235';
break;
default:
secretkey = '76bff9b0700e3ddb61320b12be8f59435';
appKey = '34803www1835';
break;
}
const service = location.host;
const routeMap = {
'/safeguardCar': {
routeName: 'safeguardCar',
description: '展车维护',
module: 'car-management',
module_text: '展车管理'
},
'/safeguardCarDetail': {
routeName: 'safeguardCarDetail',
description: '展车维护详情',
module: 'car-management',
module_text: '展车管理'
}
};
const { LoggerTrigger } = WebLogger({
debug: debug,
mode: mode,
hasSendLog: hasSendLog,
createDoc: false,
project: 'bt-arale-management',
service: service,
topic: 4,
channel: 4,
userID: '1233455',
secretkey: secretkey,
appKey: appKey,
routeMap: routeMap
});
Step4: 将LoggerTrigger和LoggerLister函数挂载到Vue对象上
Vue.prototype.LoggerTrigger = LoggerTrigger;
Step5: 在需要埋点的代码中调用LoggerTrigger函数
this.LoggerTrigger("SEND_EVENT", {
event: "click",
prop: "btn-apply-car-save",
proptext: "展车申请保存"
});
FAQ
1.WebLogger SDK提供了哪些功能?
主要功能包括:自动监控页面用户行为、自动计算用户访问页面时长、自动获取用户设备信息、扩展用户自定义数据日志、自动生成业务埋点文档。
2.如何发送用户行为事件日志数据?
通过LoggerTrigger函数发送用户日志数据,LoggerTrigger的第一个参数代表发送消息的类型(值必须是SEND_EVENT),第二个参数代表发送的数据。
用法如下:
this.LoggerTrigger("SEND_EVENT", {
event: "click",
prop: "btn-apply-car-save",
proptext: "展车申请保存"
});
3.如何增加自定义格式的数据?
通过LoggerTrigger函数发送用户日志数据,LoggerTrigger的第一个参数代表发送消息的类型(值必须是SEND_CUSTOM_DATA),第二个参数代表发送的自定义数据。
用法如下:
this.LoggerTrigger("SEND_CUSTOM_DATA", {
type: "用户自定义的业务名称",
data: {
//用户自定义的数据内容
}
});
4.如何更新发送日志时使用的用户ID?
通过LoggerTrigger函数发送用户日志数据,LoggerTrigger的第一个参数代表发送消息的类型(值必须是UPDATE_CONFIG),第二个参数代表发送的数据。仅适用于登录后更新用户ID的场景。
用法如下:
this.LoggerTrigger("UPDATE_CONFIG", {
user_id: '1234343434'
});
5.如何自动生成埋点文档?
在初始化WebLogger时需要将参数createDoc设置为true即可开启在浏览器自动生成Excel文档的。需要开发者手动触发所有埋点事件,同时刷新浏览器即可将所有的业务埋点数据创建为埋点文档。
每次刷新浏览器就会重新初始化WebLogger函数,所以就会出现每次刷新浏览器自动下载文档的现象,建议在项目功能开发完成后在启用该功能。
6.routeMap参数格式说明 routeMap数组元素中的key必须是实际路由的路径,value是以下JSON格式的数据: routeName: 'safeguardCarDetail',//路由名称, description: '展车维护详情',//路由所在页面的中文名称 module: 'car-management',//路由所属的菜单级模块英文名称,根据实际项目模块填写 module_text: '展车管理'//路由所属的菜单级模块的中文名称,根据实际项目模块填写
7.需要申请不同环境的secretkey、appKey
建议编写不同环境判读的逻辑,可以按照以下例子编写(示例中的secretkey、appKey仅供参考,请不要直接使用示例中的值):
let mode, secretkey, appKey;
switch (env) {
case 'production':
mode = 'production';
secretkey = '76bff9b0700e3ddw2w1320b2be8f59435';
appKey = '3480301w235';
break;
case 'preProduction':
mode = 'preProduction';
secretkey = '76bff9b0700e3ddw2w1320b2be8f59435';
appKey = '3480301w235';
break;
case 'test':
mode = 'test';
secretkey = '76bff9b0700e3ddw2w1320b2be8f59435';
appKey = '3480301w235';
break;
default:
secretkey = '76bff9b0700e3ddb61320b12be8f59435';
appKey = '34803www1835';
break;
}
API
WebLogger(param: JSON): Function
功能: 初始化logger监听器并运行
参数:
param: 基础参数,具体属性值如下:
debug: 可选参数,布尔值,需要打印日志时改参数值为true。
mode: 必选参数,字符串值,参数值分别是"development"、"test"、"preProduction"、"production",分别对应开发环境、测试环境、预生产环境、生成环境。
hasSendLog: 必选参数,布尔值,参数值分别是"true"和"false",默认值false。建议在调试状态下设置该值为false,避免不断发送数据到服务端。
topic: 必选参数,数值,业务数据埋点的主题,默认值0,根据实际项目填写。
channel: 必选参数,数值,业务数据埋点的通道,默认值0,根据实际项目填写。
secretkey: 必选参数,字符串值,网关验签服务下发的secretkey。
appKey: 必选参数,字符串值,网关验签服务下发的appKey。
project: 必选参数,字符串值,代表项目名称,通常是gitlab仓库中的名称。
service: 必选参数,字符串值,代表部署服务的域名。建议通过location.host获取。
userID: 必选参数,字符串值,用户ID。
routeMap: 必选参数,JSON对象,路由path和路由对应的埋点页面字段的映射关系;key对应页面路由对象的path值,routeName也是页面路由对象的path值,description是对应页面的标题。
返回值: Function
返回函数“LoggerTrigger”,用于业务端发送消息到SDK
LoggerTrigger(type: String, data: JSON): void
功能: 发送消息到WebLogger SDK
参数:
type:消息类型,目前仅支持"SEND_EVENT"、"UPDATE_CONFIG"、"SEND_CUSTOM_DATA",具体用法参考FAQ。
data: JSON数据
返回值: 无返回值
Update History
v2.0.0
增加功能:
1.用户自定义数据扩展。
2.更新用户ID支持。
3.自动生成埋点文档功能。
优化功能:
1.更改业务埋点使用方式:由HTML元素加标记方式转换为调用JS API方式。
2.其他产品需求参数修改。
v1.0.6
增加功能:
1.按需埋点:只在可以执行操作的元素上埋点。
2.支持的行为事件:点击、输入、选择、拖动事件。
3.页面访问时长自动计算。
4.仅支持hash模式的路由。
优化功能:
删除页面异常事件的监控功能。
v1.1.0
增加功能:
1.加入对history模式路由的支持。
2.加入对弹窗打开和关闭事件的支持及弹窗访问时长计算。
优化功能:
1.矫正对页面访问时长的计算误差。
2.统一加入路由计算器处理路由跳转事件。
Feedback
开发者:尹志刚
开发者邮箱:@ zhigang.yin@beantechs.com
License
MIT
2.0.1
5 years ago