UNPKG

uniapp-tracing

Version:

uniapp小程序端埋点

66 lines (53 loc) 1.53 kB
// Config import { initOption } from "./libs/config/constants"; // Mixins import pvMixin from "./libs/mixins/pv"; import elementMixin from "./libs/mixins/element"; // Hooks // Utils import handleQueue from "./libs/utils/handle-queue"; import getCurrentTime from "./libs/utils/get-current-time"; /** * 初始化pv埋点 */ function initPv(Vue) { Vue.mixin(pvMixin); } /** * 初始化element埋点 */ function initElement(Vue) { Vue.mixin(elementMixin); } /** * 初始化场景埋点 * https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html * https://opendocs.alipay.com/mini/framework/scene */ function initScene() { uni.onAppShow(({ path, scene, query, referrerInfo }) => { handleQueue({ type: "scene", startTime: getCurrentTime(), path: `/${path}`, scene, query, referrerInfo }); }); } /** * 初始化uniapp-tracing埋点 * @param {Object} Vue vue实例 * @param {Object} options 配置项 * @param {String} options.requestUrl 请求url,必填 * @param {String} options.appName 项目名称,必填 */ function install(Vue, options = {}) { const { requestUrl, appName } = options; if (!requestUrl) { throw Error(`Parameter requestUrl is required!`); } if (!appName) { throw Error(`Parameter appName is required!`); } initOption.requestUrl = options.requestUrl; initOption.appName = options.appName; initPv(Vue); initElement(Vue); initScene(); } export default { install };