位置: 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)

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

  • 建筑业预缴所得税怎么计算
  • 销售商品的差价怎么算
  • 进口缴纳关税
  • 纳税义务发生时间 纳税期限
  • 个人所得税汇算清缴情况报告
  • 工程结算成本和合同成本区别
  • 小规模纳税人增值税怎么算
  • 营改增后计税依据
  • 私营独资企业可以变更法人吗
  • 未加盖发票专用章的发票是不合规
  • 购买润滑油分录
  • 残疾人就业保障金怎么计算
  • 股份支付为什么计入资本公积?
  • 2018年2月1日以后出口发票如何开具
  • 应交增值税和未交增值税是一个科目吗
  • 增值税普通发票怎么开
  • 分工分类法
  • 办公室购买绿植违规吗
  • 公司制作小程序定金能放在图物资吗
  • 红冲发票后 库存怎么处理
  • 福利费不属于工资
  • 启动器
  • 电脑开机无启动
  • windows10如何清理c盘垃圾
  • vue3如何
  • 为什么在监狱拉屎都拉不方便
  • 检验费用会计分录
  • 公司取得的发明专利
  • 农民专业合作社法
  • u盘写保护格式化
  • 损益类科目月末结转到哪个科目
  • 劳务费发票和建筑劳务费发票
  • 印花税减半征收优惠政策2020
  • 文化事业建设费的征收标准
  • 微软回应
  • php魔术方法autoload
  • 物流发票的税率怎么算
  • 国家给农民的青春有哪些
  • golang eventbus
  • 织梦上传图片大小设置
  • 基于vue的开源甘特图控件
  • mysql常用命令行大全
  • 企业所得税汇算清缴表
  • 劳务费走应付职工薪酬
  • 预收账款和预付账款的区别
  • 在windowsxp的应用程序中,经常
  • 运费发票如何做分录
  • 行政单位资产报告范文
  • 拒收发票需要拒收证明么
  • 非广告公司可以开广告费发票吗?
  • 个人与公司交易需要纳税吗
  • 会计凭证的填制与审核实训总结
  • 预付款为什么不能抵消工程款
  • 客户付了订金后能退吗
  • 购买材料如何做会计分录
  • 其他非流动资产是金融资产吗
  • 如何理解其他权益工具
  • 航天信息何去何从
  • 企业为员工代缴社保怎样在网上申报
  • 如何设置存货计价方法有哪些
  • mysql 一键安装
  • vmware安装centos7超详细过程 图文
  • 做ghost备份
  • windows 11安全模式
  • win7怎么关闭自带键盘
  • window10如何校色
  • linux常见的启动方式
  • 桌面预览怎么设置
  • msoobe命令
  • shell循环结构
  • React+react-dropzone+node.js实现图片上传的示例代码
  • android实现简单的计算机界面
  • js翻页效果的实现原理
  • jquery attribute
  • 前端框架到底是什么
  • 税务干部转正工作总结
  • 四川办税大厅
  • 惠州市公交车投诉平台
  • 西安市乱占耕地建房
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设