Используя window.Touch, чтобы узнать, является ли текущее устройство мобильным устройством - PullRequest
4 голосов
/ 20 октября 2011

Можно ли сделать следующее, чтобы определить, используете ли вы мобильное устройство?

if(window.Touch != undefined) 
{
   //redirect to my mobile site
}

Я хотел бы сделать небольшую проверку, чтобы увидеть, является ли это мобильным устройством. Я не хочу импортировать библиотеку modernizr только для этой простой проверки.

Ответы [ 3 ]

3 голосов
/ 09 июля 2012

Это то, что я делаю, и до сих пор это работало довольно хорошо:

var HAS_TOUCH = ('ontouchstart' in window);
1 голос
/ 05 ноября 2014

Я использую:

if(window.MSPointerEvent){
    //you are on IE10
}else if(window.PointerEvent){
    //you are on IE11
}else if(window.TouchEvent){
    //android and safari
}else{
    //don't have touch events
}

Я проверял это на Android 2.3 и 4.4.2 и на iOS 7.1.Для IE я использовал то, что Microsoft рекомендует

Использование TouchEvent работает только в том случае, если вы работаете на сенсорном устройстве;это не значит мобильное устройство.Для этого используйте регулярное выражение на userAgent:

if(navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/iPhone/i)){
    //you are on Android or iPhone
}

Но есть много других случаев, например Windows Phone и BlackBerry, поэтому я рекомендую использовать обнаружение мобильногоAPI .

0 голосов
/ 20 октября 2011

Хорошо, что-то нашел после продолжительного поиска. window.touch не работает на Android , по крайней мере, это то, что кто-то сказал. Я не могу подтвердить, так как у меня нет мобильного устройства под управлением Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...