我已经为此苦苦挣扎了几天,虽然这个网站上有几个相关的问题,但没有一个问题能准确地告诉我答案。
我的目标是在 phonegap 应用程序中实现在画布上绘图。我的特定 phonegap 应用程序使用 jQuery Mobile 和 Backbone 作为结构,但不确定这是否与此处相关。
此外,我开始尝试遵循本教程:https ://bencentra.com/code/2014/12/05/html5-canvas-touch-events.html
在摆脱所有不相关的代码之后,它归结为:
document.body.addEventListener("touchstart", function (e) {
console.log('touchstart');
}, false);
document.body.addEventListener("touchmove", function (e) {
console.log('touchmove');
}, false);
document.body.addEventListener("touchend", function (e) {
console.log('touchend');
}, false);
在这个最基本的实现中,我看到了“touchstart”日志消息和“touchend”,但从来没有看到“touchmove”。
我已经尝试了很多方法来完成这项工作,包括:
1)用我在页面上也有的canvas元素替换document.body。
2) 将 e.preventDefault() 添加到 touchstart 处理函数。注意:这会导致错误:“忽略取消使用可取消 = false 的 touchstart 事件的尝试,例如因为滚动正在进行中且无法中断”
请注意,本教程的作者似乎遇到了同样的问题,并且有一个解决方案,我当然尝试过,但这对我不起作用。
重要提示:此外,虽然这是一个移动应用程序,但我在 iPhone 4 的设备仿真模式下在 Chrome 浏览器中进行测试。如果您不在此模式下测试,您将不会遇到同样的问题,因为触摸事件不会甚至在常规网页浏览模式下也不会被触发。
任何帮助将非常感激。谢谢。