2012-06-13 1 views
4

Я хочу выполнить проверку в одной из моих функций JavaScript, которая определяет, есть ли я на смартфоне, а затем решить, следует ли запускать функцию на основе результатов.Проверка на JavaScript, которая возвращает ли я на смартфон?

Каков наилучший способ обнаружения/проверки смартфона (или карманного устройства в целом) на JavaScript?

например.

if (user is on a smartphone) { 
//run this code if on a phone 
} else { 
//run this code if not on a phone 
} 

Если не один определенный метод для проверки телефона, то, что лучший выбор проверок, я должен выполнить, прежде чем решить, какой код для запуска?

EDIT/UPDATE: ответы и комментарии на этой аналогичной должности должны дать мне что-нибудь, чтобы пойти дальше - What is the best way to detect a mobile device in jQuery?

+0

Это может помочь: http://stackoverflow.com/ Вопросы/10823144/is-there-a-quintessential-mobile-user-agent-regexp-pattern – techfoobar

+0

@ilanco спасибо, что я не смог найти этот пост. Я думаю, что ответы/комментарии там должны дать мне кое-что для работы. –

+0

Я думаю, что ответ уже представлен здесь: https://stackoverflow.com/questions/3514784/best-way-to-detect-handheld-device-in-jquery Модераторы: Было бы хорошо, если владелец может закрыть его собственный вопрос. Я знаю, что есть система голосования, чтобы сделать это ... Может лучше всего кто-нибудь знает – brumScouse

ответ

0

Вы можете попробовать Twitter Bootstrap, http://twitter.github.com/bootstrap/scaffolding.html. В частности, раздел «Ревизионный дизайн».

+0

Bootstrap - это чисто CSS и не обнаружение Javascript. (Как всегда) есть уродливый хак: http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api – cederlof

1

Ye Olde браузер фырканье, кажется, быть решением

if(navigator.userAgent.match(/Android/i) 
|| navigator.userAgent.match(/webOS/i) 
|| navigator.userAgent.match(/iPhone/i) 
|| navigator.userAgent.match(/iPad/i) 
|| navigator.userAgent.match(/iPod/i) 
|| navigator.userAgent.match(/BlackBerry/i) 
){ 
// some code.. 
} 
+0

Существует дублируйте этот ответ по ссылке, которую я написал выше. –

+0

Да, я бесстыдно украл его оттуда. Думал, что стоило бы выделить его немного скорее как реальный ответ на вопрос. – primavera133

0

Вы можете использовать Categorizr библиотеку JS, чтобы проверить устройство пользователя, является ли мобильный телефон, планшет, смарт-телевизор или рабочий стол. Categorizr использует обнюхивание пользовательского агента, поэтому вы должны следить за обновлениями сценария, поскольку пользовательские агенты склонны «эволюционировать» с течением времени.

Вот как вы будете использовать Categorizr, чтобы проверить, если пользователь находится на смартфоне, но не умный телевизор, настольный компьютер или планшет:

if (categorizr.isMobile) { 
    //run this code if on a phone 
} else { 
    //run this code if not on a phone 
}