data-tracker-uni
Version:
非通用埋点追踪器,仅适用于 uni-app 的app前端项目。
125 lines (97 loc) • 3.3 kB
Markdown
# data-tracker-uni
非通用埋点,仅适用于 uni-app 的 app 前端项目。
## 安装
```bash
npm install data-tracker-uni
```
## 使用方法
### 1. 在 main.js 引入并全局挂载
```js
import Tracker from "data-tracker-uni";
const tracker = new Tracker({
uni, // 传入 uni 实例
serverUrl: "http://your-server-url/openapi/gateway", // 埋点服务端地址
method: "dronehome.burypoint.put", // 上报方法(后端提供)
appSecret: "你的私钥", // 必选,用于签名
pagesJson: pagesJson, // 必选,pages.json 配置
appId: "1001", // 应用ID(可选,默认1001)
batchDelay: 10000, // 批量发送延迟(ms),可选,默认10000
});
uni.$tracker = tracker; // 全局挂载
```
### 2. 初始化埋点系统(建议在应用启动时调用)
```js
await uni.$tracker.init(); // 必须初始化埋点
```
### 3. 常用埋点方法
- 页面访问统计
```js
uni.$tracker.trackPageView("热门");
```
- 视频点击统计
```js
uni.$tracker.trackVideoClick("v_click", "热门", { id: 123, title: "xxx" });
```
- 搜索事件
```js
uni.$tracker.trackSearch("无人机");
```
- 视频发布
```js
uni.$tracker.trackVideoPublish("热门", { id: 123, title: "xxx" });
```
- 用户注册
```js
uni.$tracker.trackUserRegister({ mobile: '138****8888', ... })
```
- 应用启动
```js
uni.$tracker.trackAppStart();
```
- 用户信息变更(如登录/登出/资料变更)
```js
uni.$emit("storageChange", "userInfo");
```
### 4. 销毁与清理
- 应用退出时建议调用:
```js
uni.$tracker.destroy();
```
- 如需手动清理批量发送定时器:
```js
uni.$tracker.clearBatchTimer();
```
## 参数说明
| 参数 | 类型 | 必填 | 说明 |
| ---------- | ------ | ---- | -------------------------- |
| uni | Object | 是 | uni-app 实例 |
| serverUrl | String | 是 | 服务端地址 |
| method | String | 是 | 上报方法 |
| appSecret | String | 是 | 用于签名的密钥 |
| pagesJson | Object | 是 | pages.json 配置 |
| appId | String | 否 | 应用 ID,默认 1001 |
| batchDelay | Number | 否 | 批量发送延迟,默认 10000ms |
- 所有参数均有类型和有效性校验,传参错误会抛出异常。
## 设备与用户信息
- 设备信息:`deviceId, osName, brand, md, pt, v`
- brand 设备品牌 如:apple、huawei 等 字段为全小写
- osName 操作系统 android、ios
- md 设备型号
- pt 平台类型 app、h5
- v 应用版本
- 用户信息:`user`(手机号字符串)
## 事件类型说明
- data_type: 1=应用启动,11=页面跳转,101=事件触发
- 常用事件名:
- v_click:视频点击
- svr_click 搜索结果视频点击
- rv_click 推荐视频点击
- search:搜索
- pub_r:发布视频
- register:注册
## 说明
- 需在 uni-app 环境下使用,并传入 uni 实例。
- serverUrl、appSecret 等参数请根据实际后端配置填写。
- 支持自定义扩展。
---
如有问题欢迎反馈。