Неверно (maxTouchPoints) и («ontouchstart» в документе) в режиме эмуляции мобильного Chrome - PullRequest
1 голос
/ 24 апреля 2019

Я использую обнаружение устройства с сенсорным экраном следующим образом:

if (window.navigator.maxTouchPoints || 'ontouchstart' in document)  
    // handle as mobile device
else
    // handle as desktop

Когда я меняю экран в мобильной эмуляции Chrome, результат как maxTouchPoints, так и 'ontouchstart' in document непредсказуем.

Для одного и того же эмулируемого экрана может возвращаться maxTouchPoints равно 0 или 1, а 'ontouchstart' in document равно true или false.

Итак, я не могу на этом чеке.
Не могли бы вы порекомендовать способ исправить это?

1 Ответ

0 голосов
/ 15 июля 2019

Как насчет этого?

function isTouchscreen() {
  return ("ontouchstart" in window) || (navigator.MaxTouchPoints > 0) ? true : false;
}

if (isTouchscreen()) {
  console.log('IS touchscreen');}
else {
  console.log('IS NOT touchscreen');
}

Ссылка: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/maxTouchPoints

...