Javascript触摸android webview中的事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript触摸android webview中的事件相关的知识,希望对你有一定的参考价值。

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

我试图在android应用程序中使用它,而不是重新发明轮子,通过在webview中加载它。

相关的更改是更改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编写触摸处理程序,也没有编写它所在的活动。

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

答案

我的问题在于javascript逻辑。一个人无法获得touchend的坐标,但只能获得最后一次触摸的坐标。

以上是关于Javascript触摸android webview中的事件的主要内容,如果未能解决你的问题,请参考以下文章

Javascript触摸android webview中的事件

JavaScript触摸和手势事件iPhone和Android

javascript 提供用于从React-Native WebView发送和接收消息的示例实现(使用postMessage / onMessage WebVie)

使用 Javascript 检测触摸屏设备

Android:WebView 触摸事件监听器

在 Android 浏览器中禁用触摸取消触发