在小程序配置文件 app.json
中添加 hxt
字段。
{
"hxt": {
"appName": "", // 应用名称
"appVersion": "", // 应用版本
"appCode": "", // 小程序的 appid
"locationAccessible": true, // 是否获取位置信息,默认为 false
"requireUserId": false, // 是否必须有 user_id 才监测,默认为无需 user_id 即可监测
"module": {
"basic": {
"apiUrl": "https://t.hypers.com.cn/hxt", // tracker 上报地址,需在小程序后台配置域名
"appKey": "" // 在 HYPER Mobile Analytics 管理平台获取的 APP Key
}
}
}
}
注:系统默认使用的用户标识为SDK自行生成的用户ID,仅当开启requireUserId
后才将使用Alipay体系内的userid替换。
将 SDK 主文件 hxt.js
放在项目根目录,并在 app.js
的开头引入。
// app.js
import hxt from "./hxt.js";
App({
// 将 hxt 挂载在 App 上以便在 Page 中使用
hxt,
// 务必在 onLaunch 中调用 hxt.init() 来初始化 SDK
onLaunch(options) {
hxt.init(options);
}
});
// 你也可以使用 hxt 中封装的 App 构造器,它会帮你完成上述步骤
//
// hxt.App({
// ...options
// })
//
打开开发工具调试器,如果看到 [hxt] hxt initialized.
日志,则已集成成功。
如果你使用 hxt.Page
构造器创建页面,它会自动为你记录页面活动。
// homepage.js
hxt.Page({
name: 'Homepage', // 使用 hxt.Page 构造器需要为 Page 设置 name
...options
})
或者,你也可以使用原生 Page
构造器,并手动加入记录页面活动的代码。
// homepage.js
const app = getApp();
Page({
// 页面显示时,调用 hxt.trackPageStart(pageName)
onShow() {
app.hxt.trackPageStart("Homepage");
},
// 页面隐藏时,调用 hxt.trackPageEnd(pageName)
onHide() {
app.hxt.trackPageEnd("Homepage");
},
onUnload() {
app.hxt.trackPageEnd("Homepage");
},
// 如果需要记录 onLoad 的参数,在 onLoad 中调用 hxt.trackPageStart(pageName, query)
// 同时在 onLoad 和 onShow 中调用 hxt.trackPageStart() 不会被重复记录
onLoad(query) {
app.hxt.trackPageStart("Homepage", query);
}
});
hxt.Page({
// 使用 hxt.trackAction(actionName) 来记录自定义事件
// 注:add_todo 是在 HYPER Mobile Analytics 管理平台创建的自定义事件
onSaveButtonClick() {
app.hxt.trackAction("add_todo");
},
// 或者使用 hxt.trackAction(actionName, { ...attributes }) 来记录自定义事件和自定义属性
// 注:todo_text 是在 HYPER Mobile Analytics 管理平台创建的自定义属性
onSaveButtonClick2() {
app.hxt.trackAction("add_todo", {
todo_text: this.data.inputValue
});
},
// 对于小程序项目,HMA 预设了一个 share 事件,表示小程序的分享
// 你可以在 onShareAppMessage() 中进行记录
// 如果你使用了 hxt.Page 或 hxt.App 构造器,则无需手动记录
onShareAppMessage() {
const shareObj = {
title: "页面标题",
path: "页面路径"
};
app.hxt.trackAction("share", {
share_title: shareObj.title,
share_path: shareObj.path
});
return shareObj;
}
});
hxt 默认使用 uuidv4 对设备进行唯一标识,若需要记录支付宝用户唯一标识(user_id)等指标,使用 hxt.identify()
接口
hxt.App({
onLaunch() {
getAlipayUser().then(user => {
// user 应当包含 user_id 字段
hxt.identify(user);
});
}
});