Я столкнулся с некоторыми проблемами, определяющими тип браузера с помощью Javascript. Мой текущий метод заключается в том, чтобы фиксировать ширину и высоту экрана и определять тип браузера на основе размеров пикселей.Обнаружение мобильных устройств против планшета и рабочего стола Javascript
Я предположил, что могу предположить, что любая ширина экрана под 768 будет мобильной, всего под 1024 таблеткой и чем-нибудь выше этого рабочего стола.
Я начал тестирование на нескольких устройствах, на которых я действительно могу получить свои руки, и результаты сильно отличаются. Например, на андроиде (Droid Bionic, если быть точным, хотя это не имеет большого значения), он возвращает ширину 980 независимо от того, находится ли устройство в ландшафтном или портретном режиме. Это намного выше, чем я предполагал.
В настоящее время я использую document.documentElement.clientWidth для определения ширины, но я пробовал другие подходы, такие как window.innerWidth.
Я думаю, что я пытаюсь понять, это вопрос, который был задан много раз, и я думал, что у меня есть довольно четкий ответ. По-видимому, настало время для обновления при правильном обнаружении браузера/устройства. Итак, каков наиболее эффективный способ определения фактического размера устройства, на котором я работаю?
UPDATE: Кажется, что мобильные браузеры фактически берут на себя решение решить, как отображать мое приложение. И на самом деле они есть, но есть способ остановить это. См. Ответ. К счастью, это означает, что стандартные методы обнаружения объектов, к которым мы привыкли, по-прежнему являются наилучшим способом определения используемого устройства. Комментарий
* Почему вы делаете это обнаружение? Если вам нужно адаптироваться из-за определенной функции рабочего стола или планшета, то вам лучше проверить наличие этой функции. –
Нужно ли это делать только с javascript .. Я имею в виду то же самое, что может быть достигнуто с помощью запроса CSS Media ... –
Мобильные браузеры сообщают о другом размере экрана от фактического размера, если вы не используете [viewport] (https: //developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag) метатег. –