Wykrywanie laptopa z dotykowym ekranem

0

W swoim kodzie korzystam z eventu touch. Używam go do wykrywania czy ktoś jest na urządzeniu dotykowym czy nie, jeżeli tak to kliknięcie w menu nie powoduje przejście do kategorii tylko rozwinięcie opcji jak po najechniu myszką. Problem pojawia się na laptopach z ekranem dotykowym, które korzystają z eventu touch i użytkownik musi dwa razy kliknąć w link by przejść do kategorii. Ma ktoś jakiś pomysł jak wykrywać takie urządzenia? Szukałem w internecie ale nic nie znalazłem.

0

Gdy miałem taki problem, z każdym rozwiązaniem było coś nie tak i w końcu zaprojektowałem inaczej stronę, żeby nie musieć go rozwiązywać.

Będzie raczej potrzebne sprawdzanie user-agenta i później w zależności od niego sprawdzanie innych cech (dostępność funkcji JS, może media query CSS4).

Jeżeli coś wymyślisz, musisz bardzo szczegółowo przetestować we wszystkich konfiguracjach, uwzględniając to że:

  • wersja komputerowa Microsoft Edge ukrywa niektóre API JS dotyczące dotyku w celu zwiększenia kompatybilności (część stron przyjmuje błędne założenie, że ekran dotykowy oznacza urządzenie mobilne), nie ukrywa innych rzadziej używanych API, ale te inne API nie są wcale dostępne w np. mobilnym Safari pomimo dostępnego ekranu dotykowego, przez co sprawdzanie tylko nich bez user-agenta nie wystarczy
  • Chrome niedługo zamierza wprowadzić rozwiązanie podobne do Edge, ale jeszcze nie wprowadził
  • w niektórych komputerach sterowniki okłamują system, że ekran dotykowy jest dostępny, podczas gdy naprawdę nie jest, w celu np. symulowania gestów dotykowych touchpadem, przeglądarka później przekazuje stronom błędne informacje, co więcej przy używaniu VirtualBoksa lub innej wirtualizacji np. różnych rozwiązań do uruchamiania Windows na Macu zdarza się że maszyna wirtualna informuje wewnętrzny system o dostępności dotyku pomimo tego, że w zewnętrznym jest niedostępny
0

W tym momencie nie jestem w stanie sprawdzić czy zadziała poprawnie ale przetestuj sobie bibliotekę https://github.com/arasatasaygin/is.js ewentualnie wyciągnij konkretnie metodę isTouch i sprawdź działanie na wspomnianym laptopie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1