在Mobile Safari中,有没有办法区分手指或Apple Pencil是否产生触摸事件?
答案 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的其他属性,例如force
或azimuthAngle
,它们可以为您提供有关触摸点当前设备的详细信息。
请注意,Touch界面只是W3C working draft的一部分而非官方标准 - 但适用于iOS 10 + Safari + Apple Pencil。
答案 1 :(得分:2)
您可以使用以下方法检查触摸力:
e.touches[0].force;
但它也适用于iPhone 6s上的3DTouch。
只有Apple Pencil上的Apple Pencil活动和触动活动才有.force