繁体   English   中英

Android WebView中的Javascript触摸事件

[英]Javascript touch events in an android webview

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

与其重新发明轮子,不如尝试通过将其加载到webview中在android应用程序中使用它。

相关更改是为了更改鼠标的向下和向上监听器:

            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或它所在的活动编写触摸处理程序。

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

我的问题出在javascript逻辑中。 无法获得触摸端的坐标,而只能获得它之前最后一个触摸移动的坐标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM