Мне нужно изменить некоторые кнопки и текст на мобильном сайте в зависимости от того, просматривает ли пользователь его в браузере Android или iOS. Есть ли надежный способ выполнить проверку?
Обнаруживать, работает ли браузер на устройстве Android или iOS.
Ответ 1
var isMobile = {
Windows: function() {
return /IEMobile/i.test(navigator.userAgent);
},
Android: function() {
return /Android/i.test(navigator.userAgent);
},
BlackBerry: function() {
return /BlackBerry/i.test(navigator.userAgent);
},
iOS: function() {
return /iPhone|iPad|iPod/i.test(navigator.userAgent);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
}
};
Ответ 2
Я бы использовал свойство navigator.useragent
, чтобы получить строку useragent, проанализировать его и обнаружить ОС.
Здесь является одним из примеров того, как вы можете это сделать.
Update:
Из-за популярности этого вопроса я подумал, что добавлю дополнительную информацию в свой ответ.
В общем, обнюхивание браузером - это почти никогда не лучший способ. Зачем? Ну, есть много причин, но здесь два хороших:
- Почти во всех случаях, когда люди обращаются к обнюхиванию браузера, обнаружение функции будет лучшим вариантом. Существуют редкие случаи, когда может быть целесообразным действовать в зависимости от того, какой OS/браузер может использовать пользователь, но по большей части, используя библиотеку, такую как Modernizr для обнаружения поддержки конкретной функции - лучший способ. Попытка адаптировать ваш сайт/приложение к конкретным браузерам, а не к функциям, которые они поддерживают, - это скользкий наклон. Вместо этого проверьте, поддерживает ли браузер нужные вам функции, и polyfill или предоставляет хорошие резервные копии, если поддержка отсутствует.
- Обход браузера чрезвычайно сложный. Зачем? Потому что почти каждый браузер находится в строке своего пользовательского агента или не имеет достаточной информации, чтобы разрешить определенную идентификацию.
С учетом сказанного, если вам действительно нужно использовать обнаружение браузера/ОС, то не заново изобретайте колесо и не пытайтесь делать это самостоятельно - вы окажетесь в мире боли и неясности предостережения! Я бы предложил вам использовать библиотеку, например WhichBrowser, которая предоставит вам удобный объект JavaScript, содержащий информацию о os, браузере, движке рендеринга и устройстве.
Ответ 3
Вы можете использовать объект навигатора: http://www.w3schools.com/js/js_browser.asp, а затем использовать инструкции if, основанные на свойствах навигатора.
Ответ 4
Я использовал это некоторое время. Простая проверка, чтобы увидеть true или false на основе мобильного устройства.
var isMobile = (/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Windows Phone/i.test(navigator.userAgent)) ? true : false;