Надежным способом обнаружения настольных и мобильных браузеров [дубликат]


Возможный дубликат:
Как лучше всего сделать обнаружение браузера в Javascript?

Я хотел бы по существу сделать следующее (В JavaScript или PHP):

if (desktop browser) {
     do x;
}
else {   // mobile browser
     do not do x;
}

Известно, что использование метода обнаружения браузеране рекомендуется . Лучшим решением является использованиетестирования возможностей . Мой вопрос заключается в том, что с мобильными браузерами становятся умнее и мощнее, чем настольная версия, какие идеально эксклюзивные возможности обнаружение для фильтрации рабочего стола От не-настольных браузеров?

Я думаю, что обращение условной проверки, т. е. if (mobile browser) {} else ..., может оказаться более проблематичным, верно?

2 11

2 ответа:

Какой маленький поиск Google оказался, от красивый сайт :

var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
    }
};

if(isMobile.any()){
    // Mobile!
} else {
    // Not mobile
}

Я не буду утверждать, что обнаружение функций является способом предпочтительнее, чем обнюхивание пользовательского агента, что на самом деле ужасно. Но если вы обнаруживаете функцию, чтобы определить, является ли устройство мобильным или нет, вы подвергаете себя целой серии новых проблем.

Вы не можете проверить pixel-ratio, потому что новые настольные компьютеры, скорее всего, будут "retina" или super-HD. Вы не можете проверить device-orientation потому что это больше не является чем-то уникальным для мобильных телефонов. Вы не можете проверить (если можете) гироскоп, потому что некоторые ноутбуки могут возвращать значения.

Создавайте сайты, которые работают на всех платформах, не пытаясь разделить их!

Я думаю, что вы ищете функцию get_browser() в php.

Пытается определить возможности браузера пользователя, просматривая информацию о браузере в browscap.ini-файл.