Обнаруживать, работает ли браузер на устройстве 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;