我正在使用Web应用程序,在该应用程序中用户应该能够在平板电脑上签署文档。我们使用Galaxy Tab 12.2是因为S笔具有所需的精度。
我在其上绘画的 Canvas 使用侦听touch
事件在 Canvas 上绘画。
canvas.addEventListener('touchstart', handleStart);
canvas.addEventListener('touchmove' , handleMove);
这里的问题是,如果用户用手指触摸 Canvas ,则 Canvas 将在此处绘制线条。
有没有办法区分S-Pen事件和“正常”触摸事件?
我知道在带有Internet Expoler的Surface Pro 3上,我可以处理不同于手指输入的笔输入。
最佳答案
好的,所以我自己找到了一个运行良好的解决方案。
SPen使用ontouch
和radiusX
= 0触发radiusY
事件。
用手指触发的事件的半径始终>0。因此,要做的就是添加
if(e.targetTouches[0].radiusX === 0)
进入事件处理程序以在我的 Canvas 上绘制。
看看这个Jsfiddle