前端配置
uni-stat 2.0 的前端配置非常简单,只需要在 manifest.json 中启用统计功能。
在 HBuilderX 中打开 manifest.json,找到"uni 统计配置":
- 统计版本选择
2.0 - 启用对应平台(如微信小程序)
配置完成后,源码中会在 mp-weixin 配置节点下自动生成:
{
"mp-weixin": {
"uniStatistics": {
"enable": true,
"version": 2,
"debug": true
}
}
}
json
debug: true 是开发阶段建议开启的选项,可以在微信开发者工具的控制台中看到完整的统计数据上传日志。
服务端配置
服务端配置文件位于:
uniCloud/cloud-functions/common/uni-config-center/uni-stat/config.json
text
关键配置项:
{
"debug": true,
"cron": {
"minute": "*/10 * * * *",
"hour": "0 * * * *"
}
}
json
修改配置后,需要右键 uni-config-center → 上传公共模块,使配置生效。
如果 uni-admin 和 uni-starter 关联了同一个云空间,配置上传后需要在 uni-starter 项目中右键 uni-config-center → 下载公共模块,保持两边配置一致。
自定义事件上传
uni-stat 提供了 uni.report() 方法,用于上报自定义事件。
API 说明
uni.report(eventKey, eventData)
javascript
| 参数 | 类型 | 约束 |
|---|---|---|
eventKey | string | 事件名称,长度 < 255 |
eventData | string 或 object | 事件参数。字符串长度 < 255;object 的值只能是 string 类型 |
使用示例
// 上传字符串参数
uni.report('purchase', '购买成功')
// 上传对象参数(对象的值必须为 string)
uni.report('purchase', {
productId: '10086',
price: '99.9',
category: '课程'
})
javascript
调试验证
- 在前端代码中调用
uni.report('purchase', '购买成功') - 编译运行小程序
- 触发对应操作(如点击按钮)
- 在微信开发者工具控制台中观察日志:
[uni统计] 统计数据开始启动
[uni统计] 采集了一条数据
[uni统计] 采集结束,开始上报
[uni统计] 上报成功
text
- 打开 uni-admin 管理后台 → uni 统计 → 自定义事件
- 筛选对应日期和平台,可以看到上报的事件数据
注意:上报并非即时执行,有约 10 秒的上传周期。多次快速操作会被合并为一次上报。
上报的数据字段中,_n 代表事件名称,_v 代表事件参数。
错误统计
uni-stat 支持自动采集运行时错误,并通过 Source Map 还原错误位置。
配置 Source Map
在 HBuilderX 中发行小程序时,勾选"生成 Source Map":
- 菜单 → 发行 → 小程序-微信
- 勾选"生成 Source Map,用于 uni 统计的错误分析"
- 发行完成后,Source Map 文件会自动上传到云端
前端 SDK 在 App.onError 中捕获错误后,通过 stat.error 方法将错误信息上报到 uni-stat 后端。
Source Map 的局限性
虽然 Source Map 能精确定位错误代码行号,但存在两个问题:
- 文件体积大:Source Map 文件可能比原始代码还大,而小程序本身有包体积限制(主包 2MB),加入 Source Map 后空间更加紧张
- 源码暴露风险:Source Map 包含源码与编译代码的映射关系,上传后相当于暴露了源代码
建议在开发阶段和测试阶段使用 Source Map 进行错误定位,生产环境关闭该功能。
替代方案
如果不想使用 Source Map,可以通过全局错误拦截器自行上报错误:
// App.vue
export default {
onLaunch() {
// 全局错误捕获
uni.onError((error) => {
uni.report('app_error', {
message: String(error).substring(0, 200),
timestamp: String(Date.now())
})
})
}
}
javascript
各平台的错误统计能力
| 平台 | 原生错误统计 |
|---|---|
| 微信小程序 | 数据分析 → 自定义分析 → reportEvent 接口 |
| 支付宝小程序 | 数据分析功能 |
| 抖音小程序 | 数据分析功能 |
| APP | 友盟统计、Sentry 等 |
| Web | Sentry、Fundebug 等 |
总结
uni-stat 2.0 的使用分三层:
- 自动采集:配置
manifest.json即可,SDK 自动采集启动、页面切换、错误等基础数据 - 自定义事件:调用
uni.report()上报业务埋点数据,在管理后台查看统计 - 源码定制:如需深度定制统计逻辑,可修改
uni-stat核心模块的云函数代码
↑