Javascript android 网络视图中的触摸事件

Javascript touch events in an android webview

我的 javascript code 工作正常。 它所做的只是保存 mousedown 的坐标,并根据 mousedown 和 mouseup 坐标修改 mouseup 的原理图。

我没有重新发明轮子,而是尝试在 android 应用程序中使用它,方法是将其加载到网络视图中。

相关更改是更改 mousedown 和 up 侦听器:

            canvas.addEventListener("touchstart", saveDownCoords, false);
            canvas.addEventListener("touchend", modifySchematic, false);

并且计算坐标的函数已更改为:

function mouseCoords(e) {
  var cellSize = e.target.getAttribute("data-lib-shelves-cell-size");
  var cellRect = e.target.getBoundingClientRect();
  return {
      //x : Math.floor((e.clientX - cellRect.left) / cellSize),
      //y : Math.floor((e.clientY - cellRect.top) / cellSize)
      x : Math.floor((e.touches[0].clientX - cellRect.left) / cellSize),
      y : Math.floor((e.touches[0].clientY - cellRect.top) / cellSize)
  };
}

除非我触摸几个手指,否则什么都不起作用。然后它执行程序对鼠标所做的操作,有时使用第一根手指向下,第二根手指向上;有时第一根手指的向下和向上,但只有在使用第二根手指的情况下,永远不会只有一根手指。

我没有为 webview 编写触摸处理程序,也没有为它所在的 activity 编写触摸处理程序。

有没有人遇到过这样的行为?

我的问题出在 javascript 逻辑上。 无法获取触摸端的坐标,只能获取之前最后一次触摸移动的坐标。