uni-app 支付宝小程序在iPhone 15.0以上系统手机上,多个按钮添加tap事件快速切换点击时,第二个按钮不触发
uni-app 支付宝小程序在iPhone 15.0以上系统手机上,多个按钮添加tap事件快速切换点击时,第二个按钮不触发
直接使用支付宝小程序(不使用 uni-app)测试一下,是否存在此问题?
更多关于uni-app 支付宝小程序在iPhone 15.0以上系统手机上,多个按钮添加tap事件快速切换点击时,第二个按钮不触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
已经测过了,支付宝小程序直接写,没有任何问题。只要uniapp,必显。
uni-app模板里的button组件页面里的button按钮,如果按照上面的操作方式问题也是必显的
回复 DCloud_UNI_Anne: 配置项在哪里
回复 4***@qq.com: 支付宝小程序开发者工具右上角详情里
回复 DCloud_UNI_Anne: 项目是使用的2.0基础库配置
回复 DCloud_UNI_Anne: 也尝试过了,不行的。这肯定是一个bug,官方的button组件示例都存在这样的问题,希望尽快确认,修复解决
回复 Mrfox: ios15系统手机测试,未复现你说的【肯定不触发】问题。请提供下设备的详情信息,另外你换个手机测试看看
回复 Mrfox: 请补充下详细的复现步骤
回复 DCloud_UNI_Anne: 已上传附件
请看附件
uniapp01.jpg是页面,页面上有三个按钮按钮01,按钮02,按钮03,
依次点击按钮01,按钮02,按钮03正常应该输出---------按钮------------- 01,---------按钮------------- 02,---------按钮------------- 03
但如果快速的点击按钮01,按钮02,按钮03输出的却是---------按钮------------- 01,---------按钮------------- 03
详情请看uniapp02.jpg,其中前三条是一个一个慢慢点击的,输出是正常的,后面几条是快速点击就会出现第二个按钮不详情
设备信息在uniapp02.jpg右上角

代码截图如下

勾选下【启用小程序基础库2.0构建】
或者用HBuilder 3.2.10 alpha版本会自动勾选此项
勾选后,测试vue3版本正常,vue2版本复现问题
已记录此问题,后续修复,感谢您的反馈!
我的HBuilder是3.2.9.20210927,构建是不管勾不勾选【启用小程序基础库2.0构建】此问题也都会必显,请记录
回复 Mrfox: 问题已记录,已加分,感谢你的反馈!
在 uni-app 支付宝小程序中,iPhone 15.0 以上系统出现快速切换点击按钮时第二个按钮事件不触发的问题,通常与支付宝小程序框架的事件处理机制和 iOS 系统的事件响应优化有关。以下是可能的原因和解决方案:
-
事件冒泡与捕获机制
支付宝小程序在 iOS 15+ 系统上可能对快速连续点击的事件处理进行了优化,导致事件冒泡或捕获阶段被中断。可以尝试在按钮的tap事件中调用event.stopPropagation()阻止事件冒泡,或使用catchtap代替bindtap来绑定事件,确保事件在捕获阶段被处理。 -
异步事件处理延迟
快速点击可能导致事件队列堆积,第二个按钮的事件被丢弃。建议在事件处理函数中添加防抖(debounce)或节流(throttle)逻辑,确保短时间内只处理一次点击。例如:let canClick = true; function handleTap() { if (!canClick) return; canClick = false; // 执行操作 setTimeout(() => { canClick = true; }, 300); } -
支付宝小程序基础库兼容性
检查支付宝小程序基础库版本是否过低,升级到最新版本可能修复已知的 iOS 事件处理问题。在app.json中配置"enableAppxNg": true以启用新版框架,可能改善事件响应。 -
使用
data-自定义数据绑定
如果按钮通过循环渲染,确保每个按钮的data-*属性值唯一,避免事件触发时数据混淆。例如:<button v-for="(item, index) in list" :key="index" [@tap](/user/tap)="handleTap" :data-index="index"> 按钮{{index}} </button>


