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题库

相关文章
|
1月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
214 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
48 0
微信小程序更新提醒uniapp
|
1月前
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
40 2
|
1月前
|
小程序 数据可视化 API
低代码可视化-uniapp商城首页小程序-代码生成器
低代码可视化-uniapp商城首页小程序-代码生成器
27 0
|
1月前
|
存储 移动开发 小程序
uniapp富文本editor输入二次扩展兼容微信小程序
uniapp富文本editor输入二次扩展兼容微信小程序
63 0
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
104 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
1月前
|
小程序
uniapp实现微信小程序隐私协议组件封装
uniapp实现微信小程序隐私协议组件封装
44 0
|
3月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
103 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
3月前
|
移动开发 小程序 前端开发
|
3月前
|
小程序 前端开发