Javascript触摸事件:区分手指与Apple Pencil

时间:2016-01-25 06:28:42

标签: javascript mobile-safari touch-event

在Mobile Safari中,有没有办法区分手指或Apple Pencil是否产生触摸事件?

2 个答案:

答案 0 :(得分:7)

触摸事件的TouchList对象包含有关触摸各个点的详细信息。在众多属性中touchType可能是最有趣的,因为它包含手写笔(Apple Pencil)或直接(手指)。

var body = document.getElementByTagName('body');
body.addEventListener('touchstart', function(evt){
    // should be either "stylus" or "direct"
    console.log(evt.touches[0].touchType);
});

您还应该查看每个Touch的其他属性,例如forceazimuthAngle,它们可以为您提供有关触摸点当前设备的详细信息。

  

请注意,Touch界面只是W3C working draft的一部分而非官方标准 - 但适用于iOS 10 +   Safari + Apple Pencil。

答案 1 :(得分:2)

您可以使用以下方法检查触摸力:

e.touches[0].force;

但它也适用于iPhone 6s上的3DTouch。

只有Apple Pencil上的Apple Pencil活动和触动活动才有.force