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

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

  • 华为手机怎么开个人热点(华为手机怎么开两个抖音)

    华为手机怎么开个人热点(华为手机怎么开两个抖音)

  • 三星s20配的是什么耳机(三星s20顶配)

    三星s20配的是什么耳机(三星s20顶配)

  • 文字后面的下划线怎么添加不上(文字后面的下划线出不来)

    文字后面的下划线怎么添加不上(文字后面的下划线出不来)

  • 怎找回微信里删除的照片(怎找回微信里删除的群聊)

    怎找回微信里删除的照片(怎找回微信里删除的群聊)

  • 手机微信直播咋录屏(在微信里直播)

    手机微信直播咋录屏(在微信里直播)

  • 戴尔电脑os盘是什么(戴尔电脑os盘是自带的吗)

    戴尔电脑os盘是什么(戴尔电脑os盘是自带的吗)

  • 手机兼容性怎么设置(手机兼容性怎么设置在哪)

    手机兼容性怎么设置(手机兼容性怎么设置在哪)

  • 空开c20是什么意思(空开c20 c16)

    空开c20是什么意思(空开c20 c16)

  • 诺基亚2720能用微信吗(诺基亚2720用的是锂离子电池嘛)

    诺基亚2720能用微信吗(诺基亚2720用的是锂离子电池嘛)

  • 华为mate30与nova6区别(华为mate30与nova7pro对比)

    华为mate30与nova6区别(华为mate30与nova7pro对比)

  • word中的替换在那里(word里的替换在哪儿)

    word中的替换在那里(word里的替换在哪儿)

  • vue怎么加滚动的字幕(vue怎么添加滚动字幕)

    vue怎么加滚动的字幕(vue怎么添加滚动字幕)

  • iphone已停用怎么恢复数据(iphone已停用怎么连接itunes解锁)

    iphone已停用怎么恢复数据(iphone已停用怎么连接itunes解锁)

  • ipad后台程序怎么关

    ipad后台程序怎么关

  • realmeQ怎么打开省电模式(realmeq2怎么开窗口)

    realmeQ怎么打开省电模式(realmeq2怎么开窗口)

  • 荣耀20支持反向充电吗(荣耀支持反向无线充电吗)

    荣耀20支持反向充电吗(荣耀支持反向无线充电吗)

  • iphone11几寸(iphone11几寸屏幕)

    iphone11几寸(iphone11几寸屏幕)

  • 栈的初始状态说明什么(栈的初始状态一定为空吗)

    栈的初始状态说明什么(栈的初始状态一定为空吗)

  • 手机里下载的视频在哪里可以找到(手机内下载的视频)

    手机里下载的视频在哪里可以找到(手机内下载的视频)

  • Win11如何修改任务栏大小 Win11修改任务栏大小方法(win11如何修改任务栏颜色)

    Win11如何修改任务栏大小 Win11修改任务栏大小方法(win11如何修改任务栏颜色)

  • Vue 3结合element plus(问题总结一)之 table数据更新而视图不跟新(vue3.0 element ui)

    Vue 3结合element plus(问题总结一)之 table数据更新而视图不跟新(vue3.0 element ui)

  • 最多游戏的手机是什么(玩的最多的手机网游)

    最多游戏的手机是什么(玩的最多的手机网游)

  • React框架第七课 语法基础课《第一课React你好世界》(react框架结构)

    React框架第七课 语法基础课《第一课React你好世界》(react框架结构)

  • 如何调整python窗口(Tkinter)大小(python如何设置窗口背景色)

    如何调整python窗口(Tkinter)大小(python如何设置窗口背景色)

  • 个人劳务报酬所得税率表
  • 什么企业符合加计扣除的条件
  • 现金流量表财务净现值怎么算
  • 一般纳税人加计抵减申报表怎么填
  • 应收暂估账务处理
  • 房租租金收入都缴纳什么税金
  • 收购其他公司有什么好处
  • 企业外购零部件入存货哪一会计科目核算?
  • 施工企业增值税纳税地点
  • 哪些政府补助属于国家
  • 企业房产税如何申报缴纳
  • 所得税季报固定资产加速折旧表资产原值
  • 车辆租赁合同印花税怎么算
  • 企业恢复生产经营方案
  • 非学历教育培训费发票
  • 发票密码区出来了还能用吗
  • 用现金发工资不给怎么办
  • 小规模纳税人免征增值税怎么记账
  • 会计与税法折旧的关系
  • 正常工资薪金本期收入含哪些
  • 未代扣代缴个税的滞纳金与处罚规定
  • 软件企业销售服务符合增值税即征即退吗
  • 简易征收应纳税额为负数
  • 旅游公司开具的考察费怎么入账
  • 公司送礼分录
  • php实现断点续传
  • linux 硬盘满了
  • 债券到期收回本息计算单
  • 鸿蒙系统怎么退出开发者选项
  • explore.exe
  • PHP:imagestringup()的用法_GD库图像处理函数
  • 车辆购置税发票在哪里打印
  • 其他经营收益怎么算
  • 狗能看懂的电视
  • 小规模升级一般纳税人后可以降为小规模吗
  • 营业外收支核算的内容有哪些?
  • rust 前端开发
  • mongodb时序
  • vue使用高德地图闪白屏
  • 个体户单位性质代码
  • 营改增后建筑企业财务核算
  • 小规模增值税退税流程怎么操作
  • 增值税的视同销售行为都有哪些?
  • 为什么小规模不可以收专票
  • 建筑公司支付给农民工的工资需要取得发票吗
  • 免费给人一些客户资料违法吗
  • 小规模纳税人销售货物税率是多少
  • 预交企业所得税税率
  • 分公司是否可以享受六税两费政策
  • 税控盘费用抵扣怎么申报什么表怎么说什么表怎么填报
  • 建筑业异地预缴个税税率
  • 常见的账务处理程序主要有
  • mysql启动时找不到mysqld.server
  • vi修改文件
  • centos云服务器
  • mac所有窗口最小化
  • 映泰主板bios设置内存频率
  • 比较常见的别墅户型
  • STMGR.EXE - STMGR是什么进程
  • linux 零拷贝技术
  • 苹果电脑Mac系统版本所对应的数字
  • 微软强制升级
  • 如何让win8系统变快
  • win7本地连接ipv4属性闪退
  • cocoscreator分包
  • cocos2dx内存管理
  • 各浏览器网址
  • js怎样删除数组中的某个值
  • 最流行的民宿装修设计
  • 批处理命令是什么语言
  • Android 判断是否打开了微信
  • node.js的安装步骤
  • JavaScript浏览器扩展
  • python 命令
  • jquery实现搜索功能
  • 2021年江苏城镇医保网上缴费
  • 税控系统减免税报表里
  • 税控盘红字发票开具流程
  • 迅雷网站官网下载
  • 应缴纳资源税税额怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设