【发布时间】:2018-06-06 16:35:14
【问题描述】:
我的javascript code 工作正常。 它所做的只是保存 mousedown 的坐标,并根据 mousedown 和 mouseup 坐标修改 mouseup 上的示意图。
我没有重新发明轮子,而是尝试通过将其加载到 webview 中来在 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 android webview touch-event