Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Jak rozpoznat touchscreen?

JavaScript JavaScript Jak rozpoznat touchscreen?

Aktivity (1)
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:30.7.2016 12:09

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.7.2016 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:30.7.2016 12:59

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

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

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

Nahoru Odpovědět 30.7.2016 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:30.7.2016 13:03
if (('ontouchstart' in document) && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {
    // Má dotykový displej
}
 
Nahoru Odpovědět 30.7.2016 13:03
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Filip Šohajek
Michal Vašíček:30.7.2016 13:04

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

Nahoru Odpovědět 30.7.2016 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:30.7.2016 13:05

Co Edge říká na msMaxTouchPoints?

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

Ž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.7.2016 13:08
Nahoru Odpovědět 30.7.2016 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:30.7.2016 13:12

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.7.2016 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:30.7.2016 13:12

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

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

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

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

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

Nahoru Odpovědět 30.7.2016 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:30.7.2016 13:18

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.7.2016 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.