2022-03-02测试结果: webview中的长按,确实是没有找到微信官方的事件。但是通过摸索,自己找到了一种hack方案:// 原理:长按事件会透传到嵌套的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不会触发)
小程序webview长按识别企微二维码的事件如何监听?问题背景:小程序的页面中通过webview嵌套了一个h5页面,该h5页面中可能有多个企业微信二维码名片。客户在小程序中长按,然后弹窗识别企微二维码,进而添加企微。 [图片] 需求明细:需要统计如下数据,不知道是否支持这些事件的监听? 用户是否有长按操作长按后是否识别出企微名片是否查看了企微名片详细内容是否点击了添加企业好友添加企微好友是否成功
2022-03-02