【问题标题】:Android Webview multitouch touchstart event not working with more than 2 fingersAndroid Webview 多点触控触摸启动事件不能使用超过 2 个手指
【发布时间】:2015-07-05 22:11:28
【问题描述】:

考虑以下代码:

canvas.addEventListener('touchstart', function(event) {
    console.log('start');
});

当我用两根手指同时点击时,我有以下输出(很酷,因为打印了两次):

I/SnapScrollController(26508): setSnapScrollingMode case-default no-op
I/chromium(26508): [INFO:CONSOLE(69)] "start", source: file:///android_asset/index.html (69)
I/chromium(26508): [INFO:CONSOLE(69)] "start", source: file:///android_asset/index.html (69)

但是当我同时使用超过 2 个手指时,我得到了相同的结果,我做错了什么? 我预计日志“开始”的次数与我使用的手指一样多。

在另一边 touchmovetouchend 效果很好。

我已上传代码here

【问题讨论】:

  • 有可能获得 3 次或更多的触摸??
  • 如果您在 touchstart 和 touchmove 事件处理程序中记录 event.touches.length 会发生什么?问题可能是,当您放下我们的无名指时,您移动了一个已经触摸的手指并导致系统更改为“移动”模式,因此它会从那时起触发 touchmove 事件。
  • @EdBallot 当我将 2 个手指(在同一个尖齿)放在屏幕上然后再放置一个时,我已经进行了测试,结果是下一个手指正在打印他们的日志。我的问题是我想同时捕捉所有 3,4 或 5 个 touchStartEvent 将手指放在屏幕上。我更新了问题上传代码。
  • 感谢您的澄清。我在 ipad 和galaxyS5 上看到snappymaria.com/misc/TouchEventTest_v2.html 的测试结果是两者都支持touchstart 中的>2 个触摸点。在该页面上,它显示了event.touches 的长度,因此它应该类似于“touch start 2”“touch start 3”,表示第一个touchstart 拿起我的前两个手指,第二个拿起第三个手指。
  • @EdBallot 谢谢你:) 你说得对,我在 Sony Z2 上测试过,效果很好,但在我的 HTC One 上却不行:(

标签: javascript android webview multi-touch


【解决方案1】:

问题出在我的 HTC One 设备上。 只需打开放大手势,我的设备就会开始捕捉我的手指触发的所有事件(超过两个)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多