Событие касания Javascript: отличительный палец против Apple Pencil


В мобильном Safari есть ли способ отличить, генерируется ли событие касания пальцем или Apple Pencil?

2 6

2 ответа:

Объект события касания содержит подробную информацию об отдельных точках касания. Среди множества свойств 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);
});

Вы также должны посмотреть на другие свойства каждого отдельного касания, такие как force или azimuthAngle, которые могут дать вам подробную информацию о текущем устройстве(устройствах) точки касания.

Пожалуйста, обратите внимание что сенсорный интерфейс является только частью W3C рабочего проект и пока не официальный стандарт-однако работает в iOS 10 + Сафари + Яблоко Карандашом.

Вы можете проверить силу касания с помощью:

e.touches[0].force;

Но он также работает для 3DTouch на iPhone 6s.

Только события Apple Pencil и события Touch на iPhone 6s имеют .сила