位置: IT常识 - 正文

Uniapp-微信小程序实现全局事件监听并进行数据埋点(uniapp微信小程序头像获取与服务器对接)

发布时间:2024-01-03
Uniapp-微信小程序实现全局事件监听并进行数据埋点 Uniapp-微信小程序实现全局事件监听并进行数据埋点零、前言

推荐整理分享Uniapp-微信小程序实现全局事件监听并进行数据埋点(uniapp微信小程序头像获取与服务器对接),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp微信小程序开发知识点,uniapp微信小程序一键登录,uniapp微信小程序获取手机号,uniapp微信小程序表单验证,uniapp微信小程序支付流程,uniapp微信小程序获取手机号,uniapp微信小程序兼容,uniapp微信小程序获取手机号,内容如对您有帮助,希望把文章链接给更多的朋友!

最近接到需求,领导希望使用微信开放平台上免费的We分析进行数据埋点,但又不希望在现有uniapp开发的微信小程序代码上做侵入式修改,笔者奉命进行了技术调研,考虑通过劫持事件的方式来实现捕获特定事件并上传分析平台的功能。

需要特别注意的是,微信小程序是不能得到document对象的,$el上挂载的也是undefined,自然也就不能通过全局addEventListener的方式来监听特定事件。在调研中想到可以通过劫持小程序的自定义组件构造器Component()来实现事件的监听。

为了便于理解,部分数据结构通过TypeScript接口形式进行描述。

一、软件环境HbuilderX 3.4.7.20220422微信开发者工具 Stable 1.05.2203070小程序基础库版本 2.24.4 [749]二、相关分析及实现uniapp编译微信小程序时对于事件的处理分析Uniapp-微信小程序实现全局事件监听并进行数据埋点(uniapp微信小程序头像获取与服务器对接)

部分知识via掘金:https://juejin.cn/post/6968438754180595742#heading-20

uniapp使用了uni-app runtime这个运行时将小程序发行代码进行打包,实现了Vue与小程序之间的数据及事件同步。

源Vue模板及编译产物wxml对照

uniapp的模板编译器代码在/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-template-complier下。

首先以一个简单的Vue模板为例,观察uniapp是如何将Vue template编译为wxml的:

<template> <div @click="add();subtract(2)" @touchstart="mixin($event)">{{ num }}</div></template>

编译结果为:

<view data-event-opts="{{ [ ['tap', [['add'],['subtract',[2]]] ], ['touchstart', [['mixin',['$event']]] ] ] }}" bindtap="__e" bindtouchstart="__e" class="_div"> {{num}}</view>

可以看到,uniapp将tap和touchstart事件绑定到__e函数上,然后将事件对应的动作放到了名为eventOpts的dataset中。

data-event-opts

data-event-opts非常重要。data-event-opts是一个二维数组,每个子数组代表一个事件类型。事件类型有两个值,第一个表示事件类型名称,第二个表示触发事件函数的个数。事件函数又是一个数组,第一个值表述事件函数名称,第二个是参数表。下面用TypeScript的类型

本文链接地址:https://www.jiuchutong.com/zhishi/283644.html 转载请保留说明!

上一篇:Win11 Dev 预览版22509.1011更新补丁KB5008918发布(附更细内容汇总)(win11预览版dev改beta)

下一篇:绿萝的养殖方法和注意事项——办公室养殖版(图文)(大型绿萝的养殖方法)

  • 支付宝怎么查看健康码(支付宝怎么查看邮箱账号)

    支付宝怎么查看健康码(支付宝怎么查看邮箱账号)

  • vivox70pro+怎么设置双击亮屏(vivox70pro+怎么设置门禁卡)

    vivox70pro+怎么设置双击亮屏(vivox70pro+怎么设置门禁卡)

  • 我的淘宝安全中心在哪(我的淘宝安全中心客服)

    我的淘宝安全中心在哪(我的淘宝安全中心客服)

  • 拯救者预装office是永久的吗(拯救者预装office怎么激活)

    拯救者预装office是永久的吗(拯救者预装office怎么激活)

  • 拼多多怎么没有拼小圈(拼多多怎么没有取件码)

    拼多多怎么没有拼小圈(拼多多怎么没有取件码)

  • 商品扫码扫不出来是假的吗(商品扫码扫不出二维码)

    商品扫码扫不出来是假的吗(商品扫码扫不出二维码)

  • 华为p40悬浮球在哪里(华为p40悬浮球自定义菜单设置)

    华为p40悬浮球在哪里(华为p40悬浮球自定义菜单设置)

  • 锂电池短路后能恢复吗(锂电池短路后能充电吗)

    锂电池短路后能恢复吗(锂电池短路后能充电吗)

  • 录音的文件夹叫什么名字(录音的文件夹叫什么)

    录音的文件夹叫什么名字(录音的文件夹叫什么)

  • 90帧是什么意思(90帧是啥)

    90帧是什么意思(90帧是啥)

  • 苹果id账户详情不可用是怎么回事(苹果id账户详情不可用怎么回事儿)

    苹果id账户详情不可用是怎么回事(苹果id账户详情不可用怎么回事儿)

  • 手机照相机曝光度怎么设置(手机照相机曝光在哪里)

    手机照相机曝光度怎么设置(手机照相机曝光在哪里)

  • i5 7500配什么主板(i5 7500配什么主板好)

    i5 7500配什么主板(i5 7500配什么主板好)

  • OPPO k5怎么打开骚扰拦截(oppo k5怎么打开私密相册)

    OPPO k5怎么打开骚扰拦截(oppo k5怎么打开私密相册)

  • oppor11开发者选项在哪(oppor11开发者选项有什么用)

    oppor11开发者选项在哪(oppor11开发者选项有什么用)

  • word2007文件选项在哪(word2007文件选项卡在哪)

    word2007文件选项在哪(word2007文件选项卡在哪)

  • 苹果xs后壳是什么材质(苹果xs手机后壳多少钱)

    苹果xs后壳是什么材质(苹果xs手机后壳多少钱)

  • 华为徕卡是什么意思(华为徕卡镜头有哪几款)

    华为徕卡是什么意思(华为徕卡镜头有哪几款)

  • switch可以用充电宝充电吗(switch可以用充电宝吗?)

    switch可以用充电宝充电吗(switch可以用充电宝吗?)

  • ipad7是什么型号(ipad7是哪个型号)

    ipad7是什么型号(ipad7是哪个型号)

  • 电脑怎么邮件发文件夹(电脑这么发邮件)

    电脑怎么邮件发文件夹(电脑这么发邮件)

  • 快手魔筷口令是什么(快手魔筷什么意思)

    快手魔筷口令是什么(快手魔筷什么意思)

  • inetpub是什么文件夹(inetpub文件可以删除吗)

    inetpub是什么文件夹(inetpub文件可以删除吗)

  • 一寸照片手机怎么拍(一寸照片手机怎么排版)

    一寸照片手机怎么拍(一寸照片手机怎么排版)

  • 华为鸿蒙系统看图识物怎么用?鸿蒙系统看图识物使用教程(华为鸿蒙系统看PDF文件会不多次存)

    华为鸿蒙系统看图识物怎么用?鸿蒙系统看图识物使用教程(华为鸿蒙系统看PDF文件会不多次存)

  • 生产成本年末转入什么科目
  • 国家重大水利工程建设基金计算方法
  • 内账需要哪些单据
  • 购买汽车的保健因素
  • 开票要交印花税吗
  • 什么叫企业过桥资金
  • 代征手续费返还
  • 周转材料属于什么会计要素
  • 资产的税务处理要注意什么
  • 个人独资企业是法人吗
  • 企业收到分红款要交税吗
  • 增值税专用发票丢失了要怎么处理
  • 金融业融资租赁
  • 房产税原值包括印花税吗
  • 1697508432
  • 报销业务招待费属于什么现金流量项目
  • 生产成本的工料有哪些
  • 生产销售部门职责
  • 已经认证抵扣的发票需要冲红
  • 用于非应税项目的购进货物或应税劳务
  • 调整bios配置设置
  • 华为微信铃声怎么设置不跟随系统
  • linux系统中怎么编辑文件
  • 增值税怎么调平
  • 报销租房费用开发票
  • 移动临时文件
  • msscli.exe - msscli是什么进程 有什么用
  • 企业自建廉租房政策
  • macOS Big Sur 11.4 Beta 1(版本号20F5046g)正式发布
  • 微信小程序完美修真攻略
  • 支票怎么用,开了支票立即可以取钱吗
  • 相关企业之间的竞争
  • thinkphp 多数据库
  • 什么叫股权溢价之谜?
  • php获取数据库中的数据,输出到div中
  • 什么叫含税和未含税区别
  • 《走进新时代》专栏
  • flex布局用法
  • Android AsyncTack 异步任务实例详解
  • phpcms v9官网
  • 小型微利企业的认定标准
  • 公司转让债权人怎么办
  • mysql写日志机制
  • sql2014附加数据库失败
  • 织梦怎么用
  • 企业所得税季报资产总额季初季末
  • 电子承兑没到期可以提示付款吗
  • 跨年租金收入如何入账
  • 以房抵债涉税分析
  • 向非关联企业捐赠现金会计分录
  • 一般纳税人的招待费会计分录
  • 其他业务收入的附加税的会计分录
  • 餐饮发票如何入账
  • 季报能弥补以前年度亏损吗
  • 私立幼儿园怎样转公立幼儿园
  • 备抵法核算坏账损失
  • sqlserver时间格式转换yyyy-mm
  • 怎么用u盘装驱动
  • 虚拟机中安装虚拟机
  • win8无法连接wifi
  • imessage对方看了会显示已读吗
  • centos 安装教程
  • Yosemite使用技巧 如何使用Yosemite mac信息功能共享电脑屏幕教程
  • hptasks.exe是病毒吗 是什么进程 hptasks进程说明
  • 王牌竞速 小米
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • cocos2dx 3.17
  • cocos2dx内存管理
  • python pyo
  • jsforeach循环遍历数组
  • 简单的jquery插件实例
  • android读写sd卡权限
  • jQuery中serializeArray()与serialize()的区别实例分析
  • dos 输出重定向
  • javascript的用法
  • jquery插件是干什么的
  • python画足球
  • python中set用法
  • 原木进项税率
  • 定期定额个体户需要申报个人所得税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号