uniapp 小程序接入友盟 ,自定义事件携带参数
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 '
换工作?找面试题? 来前端面试题库 wx搜索 MST题库


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号