0
点赞
收藏
分享

微信扫一扫

uniapp 小程序接入友盟 ,自定义事件携带参数

伢赞 2022-06-30 阅读 108

1、下载友盟的包

npm install umtrack-wx  --save

2.配置

在根目录新建 track.js 和uma.js 文件

track.js 文件

/**
* 全局事件统计,
* 通过重写Component,实现监听onShow勾子函数,通过统一重写onShow函数
* 用来统计哪个租户打开过哪个些页面
*/
import uma from 'umtrack-wx';
import Vue from 'vue'
var track = (function(){
// var uma = 1;
var tenantid = null;
/**
* onShow重写方法,类似于代理,先执行此方法,再执行真实的方法
* @param {Object} e
*/
function show(e){
try{
//这里配置自定义事件
var pages = getCurrentPages()
uma.trackEvent('eventID',{tenantid:track.tenantid,page:pages[pages.length-1].route})
//eventID是在友盟后台你自己创建的
}catch(e){
console.error(e)
}
}
/**
* 设置重写方法(部署代理方法)
* @param {Object} e 重写方法的对象
* @param {Object} t 重写方法的名称
* @param {Object} n 重写方法需要执行的方法
*/
function at(e, t, n) {
var i = e[t];
e[t] = function(e1) {
n.call(this, e);
i && i.call(this, e)
}
}
/**
* Vue use执行的install 方法,此方法中重写Component
* @param {Object} Vue
*/
function install(Vue){
try {
var gt = Component;
var _this = this
Component = function(t) {
try {
t.methods = t.methods || {};
var e = t.methods;
at(e, "onShow", show);
gt(t)
} catch (e) {
gt(t)
}
}
console.log("=============Component 重写成功===========")
} catch (e) {
console.warn("=============Component重写异常=============")
}
Vue.prototype.$track = this;
track.uma = Vue.prototype.$uma
}
return {
install:install,
uma:uma,
tenantid:tenantid
}
})()

export default track;

uma.js 文件

// #ifdef MP-WEIXIN
import uma from 'umtrack-wx';
import Vue from 'vue'
uma.init({
appKey: '由友盟分配的APP_KEY',
useOpenid: true ,// 是否需要通过友盟后台获取openid或匿名openid,如若需要,请到友盟后台设置appId及secret,若设置了false,tt比较特殊,需要手动调用setAnonymousid设置这个参数
autoGetOpenid: false,//是否打开调试模式
debug: true // 自动上传用户信息,设为false取消上传,默认为false
});

// #endif
// #ifdef H5
const uma = {
init:()=>{},
_inited:false,
trackEvent:()=>{},
setOpenid:()=>{},
setUserid:()=>{},
setUnionid:()=>{},
pause:()=>{},
resume:()=>{}
}
// #endif
// 适配vue插件如此可通过Vue.use(uma)来安装
uma.install = function (Vue) {
Vue.prototype.$uma = uma;
}
export default uma;

3 引入

在main.js中

import track from '@/track.js'
Vue.use(track)

在app.vue 中

onLaunch(){
setTimeout(()=>{
this.$uma.setAnonymousid('setAnonymousid')
},5000)
}

4 使用

在首页导入

import track from '@/track.js'
import uma from '@/uma.js'

获取参数后,调用

uma.setOpenid('openid') 
track.tenantid = 'tenantid '



举报

相关推荐

0 条评论