位置: 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
  • 加计扣除产生的滞纳金
  • 其他收益里的政府补助免税吗
  • 拓展费发票
  • 融资租赁确认的利息收入需要交增值税吗
  • 开票时间超限怎么办
  • 进项认证勾选在哪里操作
  • 个人车卖给公司能抵税吗
  • 购买金税盘需要带什么
  • 混凝土委托加工税率
  • 工程款材料费票怎么开?
  • 年底结账会计处理
  • 货物运输企业的经营方式
  • 公司房产出租租金如何开票?
  • 独生子女保健费发到孩子多大年纪
  • 增值税电子发票怎么下载
  • 管理咨询公司需要什么条件才能开发票
  • 实收资本印花税是一年一交吗
  • 信用等级D可以贷款吗
  • 网上申请的增值税专用纸质发票收到后如何确认已收到
  • 建筑企业包工包料
  • 试营业期间的费用算不算开办费?
  • 水利建设专项收入怎么申报不了
  • mac打不开网页但是可以上微信
  • 办公家具折旧年限及计算方法
  • 政府投资农业项目
  • 实收资本是认缴出资吗
  • mac开机按command+r没反应
  • windows11怎么设置ipv4地址
  • php检测文件是否存在
  • 存出保证金计入货币资金吗
  • 招标场地费怎么收
  • 股东向公司借款协议书范本
  • 销货退回未按规则处理
  • w11怎么创建快捷方式
  • 增值税专用发票抵扣期限
  • 采用权益法核算
  • apache配置多个项目
  • 集团公司内部结构是什么
  • 收到税务局退款怎么做分录
  • 小微企业认定标准时间
  • vue技术解密
  • 网络销售税率怎么算
  • java聚合工程
  • 开票和不开票的销项税额怎么算
  • 企业注销时应收账款需要交税吗
  • 小微企业缴纳增值税的账务处理
  • ado连接access数据库
  • 签发转账支票需要的单据
  • mysql 局域网访问权限
  • 残疾人就业相关论文题目
  • 进项税大于销项税怎么做分录
  • 企业清算所得税申报
  • 外债借款利率
  • 采购业务 货物收到 发票收到
  • 公司购买一台电脑,会计科目怎么办
  • 投资款项是什么意思
  • 非流动资产处置利得计入什么科目
  • 工伤 保险赔付
  • 医院药品过期放多久
  • 老板个人借款要纳税吗
  • sql查询当前年份
  • windowsxp删除所有内容
  • ubuntu20.04常用软件
  • 老毛桃U盘装系统综合教程
  • win7回收站路径在哪里
  • ubuntu20.04最小化安装教程
  • windows7默认网关不可用
  • win7怎么连接耳机蓝牙
  • 快速掌握一个方法
  • android中的动画有哪几类,它们的特点和区别是什么?
  • 快速排序的算法流程图
  • jquery遍历li
  • 增值税开票系统如何添加开票人
  • 国家财政税务局
  • 沈阳注销营业执照
  • 五证合一后还需要去税务局吗
  • 自然人电子税务局
  • 国际税务网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设