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

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

  • 上下班出了事故算不算工伤
  • 税务师厉害吗
  • 手机里面的发票在哪里
  • 什么情况下可以要求员工待岗
  • 一般纳税人销售使用过的固定资产
  • 以应税消费品抵偿债务的计税依据
  • 小规模跨年发票可以入账吗
  • 电子承兑到期怎样兑现
  • 本月开的发票次月预缴如何做会计分录呢?
  • 转让土地使用权一般计税方法
  • 收到备付金怎么做分录
  • 行政单位基建账统一核算
  • 银行结算账户的规定
  • 怎样查询单位上月社保缴纳情况
  • 附加税税种认定不完整是什么意思
  • 物业管理费属于政府购买服务吗
  • 个体工商户在税法规定的享有免税优惠的期限内
  • 发票不能开怎么回事
  • 仅提供发票
  • 股权转让成本法和权益法
  • 应交税费借方余额填列资产负债表
  • 工资扣除社保怎么算
  • 未计提工资
  • 河道管理费入什么科目
  • 甲供材料如何纳税
  • 购入空调
  • linux连接windows的服务redis
  • 扣缴义务人申报和综合所得年度自行申报
  • 鸿蒙系统怎么隐藏状态栏
  • 前端 vue
  • 新公司成立股份比例
  • 手机苹果14
  • 什么是增值税进项税额和销项税额
  • 超市收取进场费会计分录
  • css禁用button按钮
  • 物业公司收的物业费用干什么了
  • 企业所得税会计利润
  • 建筑工程房屋租赁费属于什么费用
  • 预缴所得税会计分录咋做
  • 值得深思的短句
  • wordpress最新版本
  • laravel event
  • 代销产品的形式有哪些
  • 主营业务成本记错了怎么调整
  • 未分配利润为负的原因
  • 增值税普通发票查询真伪
  • 现金流出包括所有股票吗
  • 如何扣除企业接单费用
  • 织梦使用手册
  • 什么是代缴代扣
  • 房租押金需要缴税吗
  • 出口退税是先交税后退税吗
  • 投资性房地产公允价值模式账务处理
  • 用友软件接口
  • 员工餐费报销分录怎么弄
  • 原材料跌价分录
  • 管理费用月底结转吗
  • 注册资金未缴齐怎么处理
  • 会计的几种折旧类型
  • 所附原始凭证的作用是
  • mac电脑连wifi总是断开
  • u盘装win8系统教程图解
  • 如何关闭windows更新
  • linux检测硬盘故障
  • 在mac中该如何共享文件夹
  • os x10.8.5
  • window 8
  • windows2008域
  • redhat linux 7.2系统安装详细过程
  • win7系统无线鼠标不能连接
  • win8没有开始菜单 点键盘开始菜单黑屏
  • Fast TileMap
  • node.js怎么样
  • javascript声明变量的语句
  • jquery渐变效果
  • python按行写入txt
  • 教你学python
  • html5table
  • 用javascript
  • 怎么查询地税信息表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设