Проверка в 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
}

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

РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Ответы и комментарии на этот аналогичный пост должен дать мне кое-что для продолжения - Как лучше всего обнаружить мобильное устройство в jQuery?

3 ответа

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

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

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

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

if (categorizr.isMobile) {
    //run this code if on a phone
} else {
    //run this code if not on a phone
}
Другие вопросы по тегам