Diskuze: Jak rozpoznat touchscreen?

JavaScript JavaScript Jak rozpoznat touchscreen?

Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Hoj,
existuje nějaká metoda, jak v JS rozpoznat, zda má zařízení dotykový displej, případně jestli je právě používán? Dostal se mi doruky 2v1 a ovládat na něm dotykem něco přizpůsobeného pro myš a klávesnici je fakt mor. Problém je v tom, že user agent se tváří jako desktop, rozlišení obrazovky je jako normální ntb a jako třešnička na dortu se dá klávesnice s touchpadem připojit/odpojit. Existuje nějaká cesta, jak tohle všechno vyřešit a dozvědět se, zda je nebo není používáno dotykové ovládání?

Odpovědět 30. července 12:09
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Michal Vašíček
Filip Šohajek:

Nejsem v JS nějak zběhlý, ale jediné co zjistíš je to, jestli má zařízení dotykový displej.

 
Nahoru Odpovědět 30. července 12:59
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Filip Šohajek
Michal Vašíček:

I to mi postačí. Pokud ho uživatel nepoužívá, nemá si takové zařízení kupovat. :D

Nahoru Odpovědět 30. července 13:00
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Michal Vašíček
Filip Šohajek:
if (('ontouchstart' in document) && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {
    // Má dotykový displej
}
 
Nahoru Odpovědět 30. července 13:03
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Filip Šohajek
Michal Vašíček:

To jsem zkoušel, bohužel to na tom mém 2v1 v MS Edge nefunguje.

Nahoru Odpovědět 30. července 13:04
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Michal Vašíček
Filip Šohajek:

Co Edge říká na msMaxTouchPoints?

 
Nahoru Odpovědět 30. července 13:05
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Filip Šohajek
Michal Vašíček:

Že nic takovýho nezná. :D undefined
Ale na verzi bez prefixu už reaguje, prej 10. Problém je v tom eventu ontouchstart, ten nezná. Nebo se tak aspoň tváří.

Editováno 30. července 13:08
Nahoru Odpovědět 30. července 13:07
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Zkusím

if (('ontouchstart' in document) || (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {
//touchscreen true
}

Vyzkouším na co největším počtu zařízení a uvidíme...

Nahoru Odpovědět 30. července 13:12
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Michal Vašíček
Filip Šohajek:

No, prý že touch API se musí v Edge zapnout.

 
Nahoru Odpovědět 30. července 13:12
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Michal Vašíček
Filip Šohajek:

Toto ne. Některé prohlížeče mají ontouchstart i na desktopu (nedotykovém).

 
Nahoru Odpovědět 30. července 13:12
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Filip Šohajek
Michal Vašíček:

Zkouším všechny možný prohlížeče, zatím jsem na špatný výsledek nenarazil.

Nahoru Odpovědět 30. července 13:14
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Zapínat Touch API je sice fajn, ale to user dělat nebude. Zatím se ta moje metoda jeví jako OK, kdyžtak bych odstranil ten event a nechal jen maxtouchpoints.

Nahoru Odpovědět 30. července 13:18
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.