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

简介: 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题库

相关文章
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信课堂助手小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信课堂助手小程序的详细设计和实现
36 3
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的电子商城购物平台的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的电子商城购物平台的详细设计和实现
35 3
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的英语学习交流平台的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的英语学习交流平台的详细设计和实现
24 2
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信阅读网站小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信阅读网站小程序的详细设计和实现
34 2
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的移动学习平台的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的移动学习平台的详细设计和实现
31 1
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的教师管理系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的教师管理系统的详细设计和实现
35 2
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的学生公寓电费信息的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的学生公寓电费信息的详细设计和实现
30 1
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的健身管理系统及会员微信小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的健身管理系统及会员微信小程序的详细设计和实现
29 0
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
31 0
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的微信阅读小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的微信阅读小程序的详细设计和实现
27 0