Я полагаю, что EDGE недавно изменил свое поведение, и при использовании на настольном, не сенсорном устройстве теперь сообщает о значениях> 0 для navigator.maxTouchPoints
Это нарушает следующий JS-код, который мы используем для обнаружения сенсорногоустройства:
function is_touch_device() {
var touch = false;
if ( window.PointerEvent && ('maxTouchPoints' in navigator) ) {
// if Pointer Events are supported, just check maxTouchPoints
if (navigator.maxTouchPoints > 0) {
touch = true;
}
} else {
// no Pointer Events...
if ( window.matchMedia && window.matchMedia("(any-pointer:coarse)").matches ) {
// check for any-pointer:coarse which mostly means touchscreen
touch = true;
} else if ( window.TouchEvent || ('ontouchstart' in window) ) {
// last resort - check for exposed touch events API / event handler
touch = true;
}
}
return touch;
}
Кто-нибудь знает надежный способ обнаружения (в JS), если MS Edge используется на сенсорном устройстве?Я ничего не смог найти.
Я знаю, что Эдж почти мертв, но пока я должен это поддерживать.
Спасибо!