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

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

  • 自然人电子税务局
  • 什么是增值税征免年限
  • 先收到发票还未付款怎么做账
  • 装修行业专票的税率是多少
  • 单一环节征税有哪些类型
  • 合同资产在资产负债表中列入什么项目
  • 工人工资可以直接记主营业务成本吗
  • 确认销售收入的重要依据是什么
  • 金税三期国地税合并
  • 分支机构可不可以不建账合并到总机构?
  • 材料短缺赔偿会计分录怎么写?
  • 开公司前期费用有什么
  • 小规模转为一般纳税人最新规定
  • 发票复印件能报账吗
  • 营改增通知及有关部门规定的税收优惠政策
  • 补交注册资本的法律规定
  • 工会筹备金怎么改成工会经费
  • 销售费用变动率公式
  • 银行对账单不平衡
  • 平销返利可以作为下期的折扣开票吗?
  • 清包工一般记取哪些费用
  • 公转私合理吗
  • 谨慎性原则的具体体现有哪些
  • 企业预收账款缴哪些税
  • 收到投资分红怎么做账务处理?
  • php glob
  • 补充医疗保险是六险吗
  • 后端返回pdf文件地址,前端怎么渲染到页面
  • 我告诉你windows7旗舰版
  • PHP:imagepsfreefont()的用法_GD库图像处理函数
  • 发票盖章有讲究吗
  • 股权转让怎么交印花税2019年最新
  • 企业接受现金捐赠要交税吗
  • PHP:JDToFrench()的用法_日历函数
  • 所得税减免与纳税的关系
  • windows安装无法继续,若要安装请重新启动
  • zendstudio怎么创建php项目
  • python抓取淘宝店铺商品
  • 电票怎么付给别人
  • 企业购买预付卡怎么做账
  • vue中事件
  • yii2框架和fastadmin建商城网站哪个好用
  • nslookup命令大全
  • python获取字符串中汉字的个数
  • 外省人员收入怎么查
  • 代开增值税发票需要预交所得税吗
  • 企业所得税外地预缴几个点
  • phpcms建站流程
  • 分公司民事责任由谁承担
  • 电话布线使用网络
  • 销售退回跨年度的会计分录
  • 营改增后计算土地增值税收入公式
  • 发票冲红的会计怎么处理
  • 收到增值税发票后该如何处理啊?
  • 收到固定资产发票怎么入账
  • 税控系统维护费可以全额抵扣吗
  • 普通发票和增值发票的区别在哪里
  • 分公司从业人数填越少越好吗
  • solaris init 0
  • 怎么把mac系统的文件导出
  • mmc不能打开文件services.msc
  • 电脑程序在运行桌面不显示的解决方法
  • win8换win10系统步骤
  • centos7安装视频教程
  • windows10累积更新很慢
  • win7关闭系统更新在哪里
  • win10升级后小娜不能用
  • 全球知名的中文搜索引擎
  • win7系统检测不到u盘
  • 一系列优秀的Android开发资料
  • perl package
  • unity碰撞得分代码
  • react-router react-router-dom
  • jquery 动态绑定click事件
  • java中主要使用unicode编码方式
  • android pipepline
  • android打包v1v2
  • 如何查政审合不合格
  • 哪些初级农产品可以免税
  • 暂估收入入账冲回如何会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设