位置: IT常识 - 正文

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

编辑:rootadmin
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)

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

  • 工资怎么扣费
  • 限定性净资产账务处理
  • 收入用结转吗
  • 固定资产一次性扣除政策文件
  • 上年度职工月平均工资是税前还是税后
  • 特种设备电梯如何监管
  • 如何设置处理器个数如何设置显示器超频
  • 工程咨询服务发展指导意见坚持市场培优的原则
  • 债权投资损失准备
  • 预提利息属于费用吗
  • 业务招待费的进项怎么算
  • 多缴所得税返还现金流
  • 专用发票可以下账吗
  • 租赁厂房发生的改造装修费用
  • 公司给员工的商业保险
  • 销售合同印花税计税依据及税率
  • 房改房继承需要原单位开证明吗
  • 融资租赁的房产,按收取的租金从租计征房产税
  • 案例分析正当防卫
  • 长期应付款账面价值和账面余额
  • 万元的票可以开到多大金额
  • 长期股权投资佣金手续费计入
  • 农产品加计扣除政策2023最新
  • 财务报表批准日是哪一天
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 冲上年收入会计分录
  • 个人取得经济补偿金个人所得税计算
  • 工会收到单位拨款怎么办
  • win11电脑下载的软件桌面没有图标怎么办
  • 旅游开发公司税率
  • 营业外支出的税额要进项转出吗
  • 软件充值怎么申请退款
  • mac睡眠后无法正常唤醒
  • 购入研发设备
  • 购入原材料所发票怎么入
  • 企业备用金预借多久到账
  • 销售商品取得的货款
  • 进出口怎么交税
  • 国家纪念品
  • 接受捐赠旧的固定资产以什么价格入帐
  • react中的key的作用
  • coco2017数据集介绍
  • 净亏损会影响所有者权益吗
  • 比较坏账准备与什么有关
  • web网页制作软件
  • 合宙air32f103 stlink
  • 合伙企业能享受所得税减半征收
  • 微信公众号认证主体是什么意思
  • 一般纳税人企业所得税税率2023
  • 加计抵减四项服务是什么?
  • 一个合同里面服务怎么写
  • mongo创建db
  • 终止劳动合同赔偿N+1
  • 成本费用率和成本费用利润率的区别
  • 企业丢失专用发票税务机关如何处理
  • 执行迟延履行利息的计算
  • 印花税的其他凭证指的是什么
  • 工程施工怎么做账
  • 报销发票金额大于付款金额
  • 收购溢价会计处理
  • 注册表 启动
  • xp系统如何配置ip
  • ubuntu20.04怎么样
  • mac上播放器
  • SymSPort.exe - SymSPort是什么进程 有何作用
  • node.js gui
  • 列宽自适应
  • 机械革命系统重装官方教程
  • 段正淳算正面人物吗
  • python读取grib
  • 多态和封装的区别
  • nodejs使用场景
  • javascript教程chm
  • 互联网巨头bat有哪些
  • jquery.handleerror
  • 监察室主任岗位职责
  • 跪式服务礼仪规范图片
  • 查询发票号码
  • 百旺税控人工客服电话
  • 国企重组裁员政策解读
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设