用 ionic 开发的微信应用,在二维码图片上面长按,无法弹出“发送给朋友 | 保存到手机 |识别图中二维码”那个菜单

2015-08-30 22:17:51 +08:00
 ileenhow

这个问题困扰好多天了,上 segmentfault 提问了也没有大神给出解决办法
http://segmentfault.com/q/1010000003509367
不知万能的 V2EX 有没有前辈遇到过这个问题

6702 次点击
所在节点    Angular
10 条回复
babyname
2015-08-30 22:21:18 +08:00
公众号发的文章才支持吧
ileenhow
2015-08-30 22:22:48 +08:00
@babyname 不是的吧,只要图片被长按住有反应就能弹出菜单啊,就算不是二维码图片,也能长按保存的呀
abelyao
2015-08-30 22:30:36 +08:00
遇到过一样的问题。
我的情况是页面上的内容过于复杂(上千个动态创建的 dom 节点),而在创建这些节点之前长按图片是可以识别二维码的。所以我怀疑微信在识别图片中是否含有二维码之前,是否有判断当前页面占用内存(或者说消耗资源)的使用情况。
还有另一个可能性,就是图片问题,但是到目前琢磨不明白,可能是跟什么透明度之类的有关( PNG ),仅仅是猜测。
abelyao
2015-08-30 22:31:14 +08:00
好吧,说了这么多,是我理解错了,原来你是连那个菜单都弹不出…
ileenhow
2015-08-30 22:33:20 +08:00
@abelyao 嗯,一般的页面上面长按不是都能选中文字来复制什么的吗,我的情况就是长按后啥反应都没有,不能选择文字,不能弹出菜单,我猜测是不是 Ionic 或者 angular 把长按的行为给禁用掉了...
abelyao
2015-08-30 22:37:01 +08:00
@ileenhow 长按事件说白了应该也是 touchstart 或 touchend 事件吧,不涉及 touchmove ,你说的这样有几个可能性,其中一个是页面整体的 touch 事件都被屏蔽了,另一个就是当前元素的 touch 事件。你可以试试确保在 Ionic 或 angular 的代码都执行完之后,把 body / html / element 的 touch 事件都绑定为一个 alert 看看有没有用。
ljbha007
2015-08-30 22:40:15 +08:00
@ileenhow
ionic 会劫持整个 dom 除了标题栏的所有触摸事件 可能微信的触发长按的胶水代码就被覆盖掉了
ileenhow
2015-08-31 17:17:35 +08:00
@abelyao 找到解决办法了,在二维码的 img 上添加一个`data-tap-disabled: true;`属性
abelyao
2015-08-31 17:20:03 +08:00
@ileenhow 这个属性是 Ionic 的吧?
ileenhow
2015-08-31 18:23:42 +08:00
@abelyao 是的,看官方文档,好像是用来禁用 ionic 的 tap 处理机制

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/217184

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX