小程序
小游戏
企业微信
微信支付
扫描小程序码分享
问题背景:小程序的页面中通过webview嵌套了一个h5页面,该h5页面中可能有多个企业微信二维码名片。客户在小程序中长按,然后弹窗识别企微二维码,进而添加企微。
需求明细:需要统计如下数据,不知道是否支持这些事件的监听?
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
2022-03-02测试结果:
// 原理:长按事件会透传到嵌套的h5页面中,对二维码所在的img标签进行事件绑定 // 根据测试,长按识别,会触发ontouchstart事件,但是不会触发ontouchend事件 // 而正常的滑动页面,ontouchstart和ontouchend事件都会触发 let start = 0, end = 0; const img = document.querySelector('img'); img.ontouchstart = (e) => { start = new Date().getTime(); console.log('start', start); end = 0; setTimeout(() => { if (end - start < 0) { console.log('this is longpress'); // report event } // 微信官方的长按事件,定义为350ms }, 350) } img.ontouchend = (e) => { end = new Date().getTime(); console.log('end', end); console.log('this is slide screen') }
2. 如果不是webview的长按,而是使用image的show-menu-by-longpress="true"属性来实现二维码图片的识别,则可以添加事件:bindlongpress(bindtap不会触发)
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
都不支持。
无法监听
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
2022-03-02测试结果:
// 原理:长按事件会透传到嵌套的h5页面中,对二维码所在的img标签进行事件绑定 // 根据测试,长按识别,会触发ontouchstart事件,但是不会触发ontouchend事件 // 而正常的滑动页面,ontouchstart和ontouchend事件都会触发 let start = 0, end = 0; const img = document.querySelector('img'); img.ontouchstart = (e) => { start = new Date().getTime(); console.log('start', start); end = 0; setTimeout(() => { if (end - start < 0) { console.log('this is longpress'); // report event } // 微信官方的长按事件,定义为350ms }, 350) } img.ontouchend = (e) => { end = new Date().getTime(); console.log('end', end); console.log('this is slide screen') }
2. 如果不是webview的长按,而是使用image的show-menu-by-longpress="true"属性来实现二维码图片的识别,则可以添加事件:bindlongpress(bindtap不会触发)
都不支持。
无法监听