- Объект Navigator в JavaScript – информация о браузере
- Свойства и методы объекта navigator
- Пример
- Обнаружение браузера с помощью userAgent
- Определение мобильного устройства посредством userAgent
- Объект geolocation
- Получение текущего местоположения пользователя
- Методы watchPosition и clearWatch
- Определение Android устройства на PHP, JavaScript, htaccess
- JavaScript
- .htaccess
- dongerardor / check mobile user agent
- Автоматическое обнаружение мобильного браузера (через user-agent?)
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
- Ответ 14
- Ответ 15
- Ответ 16
Объект Navigator в JavaScript – информация о браузере
На этом уроке мы познакомимся с объектом navigator , который предназначен для получения различной информации о браузере.
Объект navigator предназначен для предоставления подробной информации о браузере, который пользователь использует для доступа к сайту или веб-приложению. Кроме данных о браузере, в нём ещё содержится сведения о операционной системе, сетевом соединении и др.
Объект navigator – это свойство window :
Свойства и методы объекта navigator
Объект navigator имеет свойства и методы. Очень часто они используется для того чтобы узнать, какие функции поддерживаются браузером, а какие нет.
Свойства объекта navigator :
- appCodeName – кодовое имя браузера;
- appName – имя браузера;
- appVersion — версия браузера;
- cookieEnabled — позволяет определить включены ли cookie в браузере;
- geolocation — используется для определения местоположения пользователя;
- language — язык браузера;
- online — имеет значение true или false в зависимости от того находиться ли браузер в сети или нет;
- platform — название платформы, для которой скомпилирован браузер;
- product — имя движка браузера;
- userAgent — возвращает заголовок user agent , который браузер посылает на сервер.
Методы объекта navigator :
- javaEnabled – позволяет узнать, включён ли в браузере Java;
- sendBeacon — предназначен для отправки небольшого количества информации на веб-сервер без ожидания ответа.
Пример
Например, выведем все свойства и методы объекта Navigator на веб-страницу:
Обнаружение браузера с помощью userAgent
userAgent — это строка, содержащая информацию о браузере, которую он посылает в составе заголовка запроса на сервер.
Пример содержания строки userAgent в браузере Google Chrome:
Она содержит сведения об операционной системе, браузере, версиях, платформах и т.д.
Эти данные можно использовать, например, для обнаружения браузера. Для этого можно написать следующую функцию:
Зачем это нужно? Например для того, чтобы запускать некоторые скрипты или функции только в определенном браузере.
Но при использовании navigator.userAgent следует иметь в виду, что эта информация не является 100% достоверной, поскольку она может быть изменена пользователем.
Вообще не существует 100% надежных способов идентификации браузера. Поэтому лучше проверять доступность необходимой функции или свойства, и если этой поддержки нет, то написать обходной код для реализации этого функционала или вообще его не предоставлять для этих браузеров.
Определение мобильного устройства посредством userAgent
Самый простой способ обнаружить мобильные устройства — это найти слово mobile в пользовательском агенте ( userAgent ):
Более подробный вариант идентификации мобильного браузера:
Объект geolocation
Объект geolocation предназначен для определения местоположения устройства. Доступ к этому объекту осуществляется через свойство « navigator.geolocation »:
Узнать поддерживает ли браузер геолокацию, можно посредством проверки существования свойства geolocation в объекте navigator :
При этом, когда сайт или веб-приложение пытается получить доступ к местонахождению пользователя, браузер из соображений конфиденциальности предоставит его только в том случае если это разрешит пользователь.
Получение текущего местоположения пользователя
Получение текущего местоположения пользователя осуществляется через метод getCurrentPosition .
Этот метод посылает асинхронный запрос. В случае успеха мы можем получить местоположение устройства, в противном случае – нет.
Метод getCurrentPosition принимает 3 аргумента:
- success — функцию обратного вызова, которая будет вызвана при успешном получении геоданных (т.е. когда пользователь разрешил доступ сайту или веб-приложению к Geolocation API и данный API определил местоположение пользователя);
- error — функцию обратного вызова, которая вызывается при ошибке (т.е. когда пользователь не разрешил доступ к Geolocation API, или данный API не смог определить местонахождение пользователя, или истекло время ожидания timeout );
- options — объект, содержащий настройки.
В options можно установить:
- maximumAge — следует ли информацию о местонахождении пользователя кэшировать (в миллисекундах) или пытаться всегда получать реальное значение (значение 0 — по умолчанию);
- timeout — максимальное время в миллисекундах в течении которого нужно ждать ответ (данные о местоположении); если ответ за указанное время не пришёл, то вызывать функцию обратного вызова error (по умолчанию имеет значение infinity , т.е. ждать бесконечно);
- enableHighAccuracy — при значении true будет пытаться получить наилучшие результаты, т.е. более точное местоположение (для этого может понадобиться задействовать GPS), что в свою очередь может привести к более длительному времени отклика или увеличению энергопотребления; по умолчанию — false .
В функцию success передаётся в качестве первого аргумента объект GeolocationPosition . Он содержит информацию о местоположении устройства ( coords ) и времени, когда оно было получено ( timestamp ).
Объект coords содержит следующие свойства:
- latitude — широта (в градусах);
- longitude — долгота (в градусах);
- altitude — высота над уровнем моря (в метрах);
- speed — скорость устройства в метрах в секунду; это значение может быть null .
Пример получения местоположения устройства:
Методы watchPosition и clearWatch
Метод watchPocation используется когда нужно получать данные о местоположении каждый раз, когда оно меняется. Метод возвращает целое число, являющееся идентификатором задачи.
Метод clearWatch предназначен для удаления задачи по её идентификатору, которую вы создали посредством watchPosition .
Источник
Определение Android устройства на PHP, JavaScript, htaccess
С развитием мобильных устройств, вебмастера все больше уделяют времени разработке именно для портативных устройств. Хороший сайт должен выглядеть одинаково не только в разных браузерах, но и корректно на разных устройствах. Поэтому важно определять тип клиента и вносить некоторые изменение в структуру сайта, конкретно для каждого из них.
Мы уже рассматривали, как определить пользователей iPad, iPhone на PHP. Сегодня мы научимся определять Android клиент разными способами. То есть с помощью JavaScript, PHP или .htaccess. Почему именно так?
Порой бывает необходимо только подгрузить нужный CSS файл, для этого можно обойтись JavaScript определением клиента «Android».
Если нужно больше… перенаправить на поддомен, или другой URL, тогда подойдет PHP или .htaccess вариант.
Помните! некоторым пользователям не по душе, когда их «посылают» на разные домены.
JavaScript
Поиск строки UserAgent, является наиболее быстрым методом определения Android с помощью JS.
Опять, тот же UserAgent, только используем функцию strstr, для поиска слова Android:
.htaccess
Мы можем использовать даже .htaccess директивы, для идентификации Android устройств.
Вот и все! Теперь у вас есть три разных способа определения Android устройств! Надеюсь, эта статья была полезной и не скучной! Успехов вам в мобильной разработке!
Источник
dongerardor / check mobile user agent
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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()); |
> |
>; |
window.onload = checkMobile; |
function checkMobile () < |
var browserType = isMobile.any()?»mobile»:»not mobile»; |
document.getElementById(«output»).innerHTML = browserType; |
> |
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Источник
Автоматическое обнаружение мобильного браузера (через user-agent?)
Как я могу определить, просматривает ли пользователь мой веб-сайт из мобильного веб-браузера, чтобы затем я мог автоматически обнаружить и отобразить соответствующую версию моего веб-сайта?
ОТВЕТЫ
Ответ 1
Да, чтение заголовка User-Agent сделает трюк.
Есть некоторые списки из известного мобильного пользовательских агентов, поэтому вам не нужно начинать с нуля. Что я сделал, когда мне приходилось создавать базу данных известных пользовательских агентов и хранить неизвестные, поскольку они были обнаружены для проверки, а затем вручную выяснить, что они собой представляют. В некоторых случаях это может быть излишним.
Если вы хотите сделать это на уровне Apache, вы можете создать script, который периодически генерирует набор правил перезаписи, проверяющих агент пользователя (или только один раз, и забывает о новых агентах пользователя или один раз в месяц, ваш случай), например
который перемещает, например, запросы http://domain/index.html в
Если вам не нравится подход, когда script периодически воссоздает файл htaccess, вы можете написать модуль, который проверяет User Agent (я не нашел его уже сделанным, но нашел это особенно подходящим пример) и получить агенты пользователя с некоторых сайтов для их обновления. Тогда вы можете усложнить подход столько, сколько хотите, но я думаю, что в вашем случае предыдущий подход будет в порядке.
Ответ 2
Ответ 3
Просто мысль, но что, если вы справились с этой проблемой в противоположном направлении? Вместо того, чтобы определять, какие браузеры являются мобильными, почему бы не определить, какие браузеры нет? Затем закодируйте свой сайт по умолчанию для мобильной версии и перенаправляйте на стандартную версию. При взгляде на мобильный браузер есть две основные возможности. Либо он поддерживает javascript, либо нет. Поэтому, если браузер не поддерживает javascript, он будет по умолчанию для мобильной версии. Если у него есть поддержка JavaScript, проверьте размер экрана. Все, что ниже определенного размера, вероятно, также будет мобильным браузером. Все большее будет перенаправлено на ваш стандартный макет. Тогда все, что вам нужно сделать, это определить, является ли пользователь с отключенным JavaScript мобильным или нет.
Согласно W3C, число пользователей с отключенным JavaScript было около 5%, и большинство пользователей отключили его, что означает, что они действительно знают, что они делают с браузером. Являются ли они значительной частью вашей аудитории? Если нет, тогда не беспокойтесь о них. Если да, то каков худший сценарий? У вас есть пользователи, просматривающие мобильную версию вашего сайта, и это хорошо.
Ответ 4
Вот как я это делаю в JavaScript:
См. пример в www.tablemaker.net/test/mobile.html, где он изменяет размер шрифта на мобильных телефонах.
Ответ 5
Мой любимый механизм обнаружения мобильных браузеров WURFL. Он часто обновляется, и он работает со всеми основными платформами программирования и языка.
Ответ 6
Рассматривали ли вы использование медиа-запросов css3? В большинстве случаев вы можете применять некоторые стили CSS специально для целевого устройства, не создавая отдельную мобильную версию сайта.
Вы можете установить ширину так, как хотите, но 1025 поймает вид в альбомной ориентации iPad.
Вы также захотите добавить следующий метатег в голову:
Просмотрите эту статью в HTML5 Rocks для некоторых хороших примеров
Ответ 7
для ANDROID, IPHONE, IPAD, BLACKBERRY, PALM, WINDOWS CE, PALM
Ответ 8
Файл обозревателя мобильных устройств — отличный способ обнаружить мобильные (и другие) броузеры для проектов ASP.NET: http://mdbf.codeplex.com/ p >
Ответ 9
Вы можете обнаруживать мобильные клиенты просто через navigator.userAgent и загружать альтернативные сценарии на основе обнаруженного типа клиента как:
Ответ 10
Вы можете проверить строку User-Agent. В JavaScript это очень просто, это просто свойство объекта навигатора.
Вы можете проверить, если устройство, если iPhone или Blackberry в JS с чем-то вроде
Если isIphone верно, вы получаете доступ к сайту с помощью Iphone, если isBlackBerry вы получаете доступ к сайту из Blackberry.
Вы можете использовать плагин UserAgent Switcher для проверки подлинности firefox.
Если вам также интересно, может быть стоит проверить мой script «redirection_mobile.js» , размещенный на github здесь https://github.com/sebarmeli/JS -Redirection-Mobile-Site, и вы можете прочитать более подробную информацию в одной из моих статей здесь:
Ответ 11
Этот пример работает в asp.net
Ответ 12
Вы не сказали, на каком языке вы используете. Если это Perl, то это тривиально:
Ответ 13
Да, пользовательский агент используется для обнаружения мобильных браузеров. Есть много бесплатных скриптов, доступных для проверки этого. Вот один из таких php code, который поможет вам перенаправить мобильных пользователей на другой сайт.
Ответ 14
Я разместил эту демонстрацию со сценариями и примерами, включенными вместе:
В этом примере используются функции php для обнаружения пользовательского агента и дает дополнительное преимущество, позволяющее пользователям указывать предпочтение для версии сайта, которая обычно не будет использоваться по умолчанию на основе их браузера или типа устройства. Это делается с помощью куки файлов (поддерживается с использованием php на стороне сервера, а не javascript).
Обязательно ознакомьтесь с ссылкой для загрузки в статье для примеров.
Надеюсь, вам понравится!
Ответ 15
MobileESP имеет привязки PHP, Java, APS.NET(С#), Ruby и JavaScript. у него также есть лицензия Apache 2, поэтому она бесплатна для коммерческого использования. Главное для меня — это только определение браузеров и платформ, а не размеров экрана и других показателей, что делает его приятным.
Ответ 16
Там есть новое решение, использующее Zend Framework. Начните с ссылки на Zend_HTTP_UserAgent:
Источник