Я делаю сайт, и я хочу, чтобы он был совместим с предстоящим Microsoft Edge, когда он официально вышел. Чтобы быть более конкретным, это мобильная версия. Кто-нибудь знает, какая строка будет идентифицировать Edge Mobile Browser (например, "IE Mobile" идентифицирует мобильную версию Internet Explorer).
Каково имя строки агента пользователя для Microsoft Edge?
Ответ 1
Строка Microsoft Edge UA:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Я подробно описываю, почему в этом блоге.
Neowin недавно сообщил, что новый браузер Microsoft для Windows 10, Spartan, использует строку Chrome UA "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 ″. Это сделано специально.
Вы также заметите, что вся строка оканчивается на "Edge/12.0", чего нет в Chrome.
Я должен отметить, что это не радикальное отклонение от того, что Microsoft сделала с IE 11, который в Windows 8 гласит: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv: 11.0), как Gecko, как объяснено в этом посте.
Что такое агент пользователя?
Часто веб-разработчики используют UA для обнаружения браузера. Mozilla хорошо объясняет это в своем блоге:
Обслуживание разных веб-страниц или сервисов в разных браузерах обычно является плохой идеей. Интернет должен быть доступен каждому, независимо от того, какой браузер или устройство они используют. Существуют способы разработать свой веб-сайт, чтобы постепенно улучшать его, основываясь на доступности функций, а не на определенных браузерах.
Вот отличная статья, объясняющая историю агента пользователя.
Зачастую ленивые разработчики просто отыскивают строку UA и отключают контент на своем веб-сайте в зависимости от того, какой браузер, по их мнению, использует зритель. Internet Explorer 8 - это общая проблема для разработчиков, поэтому они часто проверяют, использует ли пользователь ЛЮБУЮ версию IE, и отключают функции.
Команда Edge подробно рассказывает об этом в своем блоге.
Все строки пользовательских агентов содержат больше информации о других браузерах, чем фактический браузер, который вы используете - не только токены, но и "значимые номера версий".
Строка UA обозревателя Internet Explorer 11s:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv: 11.0), как Gecko
Строка Microsoft Edge UA:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Патрик Х. Лауке в обсуждениях W3C метко описал свойство userAgent как "постоянно растущую пачку лжи". ("или, скорее, уравновешивающий процесс добавления достаточного количества унаследованных ключевых слов, которые сразу же не приводят к падению старого UA-сниффинг-кода, в то же время пытаясь передать немного действительно полезной и точной информации".)
Мы рекомендуем, чтобы веб-разработчики максимально избегали прослушивания UA; функции современных веб-платформ обнаруживаются практически всеми способами. Например, библиотека Modernizr - это фантастический и простой способ обнаружения функций.
За прошедший год мы видели несколько сайтов, отслеживающих UA, которые были обновлены для обнаружения Microsoft Edge… только для того, чтобы предоставить ему устаревший путь кода IE11. Это не лучший подход, поскольку Microsoft Edge соответствует поведению WebKit, а не IE11 (любые различия Edge-WebKit - это ошибки, которые были заинтересованы в исправлении).
По нашему опыту Microsoft Edge лучше всего работает на путях кода WebKit на этих сайтах. Кроме того, в связи с тем, что Интернет становится доступным на более широком спектре устройств, предположите, что неизвестные браузеры хороши - пожалуйста, не ограничивайте свой сайт работой только в небольшом наборе известных браузеров. Если вы сделаете это, ваш сайт почти наверняка сломается в будущем.
Заключение
Представляя строку Chrome UA, мы можем обойти хаки, которые используют эти разработчики, чтобы предоставить пользователям лучший опыт.
Ответ 2
Существует статья MDN об обнаружении браузера с помощью "User-Agent" и что вы должны иметь в виду, когда делаете что-то подобное.
Независимо от того, что MSDN Library описывает изменения пользовательского агента для "Edge".
Из MSDN Строка User-agent:
Microsoft Edge для Windows 10 Mobile Insider Preview имеет следующую строку пользовательского агента:
Mozilla/5.0 (Windows Phone 10.0, Android 4.2.1, DEVICE INFO) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12. < OS Build # >
Ответ 3
Для тех, кто ищет регулярное выражение для обнаружения IE и Microsoft Edge, я перепробовал один из другого ответа SO и добавил Edge
/(?:\b(MS)?IE\s+|\bTrident\/7\.0;.*\s+rv:|\bEdge\/)(\d+)/
Я сделал проверку на Edge, а затем на разную цифру, если они решат итерировать версию Edge.
EDIT: для обновления да, как Edge, так и более старые версии IE считаются очень разными браузерами. Моему варианту использования требовалось обнаружить браузеры, предназначенные для IE, для маркетинговых целей (если пользователь использует любой браузер Internet Explorer/Edge, мы хотели что-то показать для этого), но это может быть не обязательно для вас.
Ответ 4
В настоящее время веб-агент не является ключевым моментом для адаптации вашего сайта, но вы должны обнаружить функции браузера.
В этом случае вы должны использовать некоторую библиотеку, например Modernizr, чтобы проверить определенные функции браузера независимо от того, какой поставщик или версия браузера используя пользователя.
Примечание. Несмотря на понижение, каждый должен рассмотреть другой ответ на этот вопрос Q & A, который подробно объясняет, что стоит за моим обобщенным ответом, в котором представлен ответ, доказывает, что многие браузеры поставщики не поощряют нюхание пользовательского агента. Это причина моего собственного ответа, где я предлагаю всем адаптировать свои сайты на основе функций, а не конкретного браузера.
Ответ 5
Mozilla/5.0 (Windows Phone 10.0, Android 4.2.1, DEVICE INFO) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/39.0.2171.71 Mobile Safari/537.36 Edge/12.0
Ответ 6
Вы забыли, что SA необходимо знать тип браузера, чтобы сообщить об этом в mgmt. Должно быть ясно, какой браузер используется, для точности. И на чистой сборке пользовательский агент Edge не имеет ключевого слова "EDGE":
Mozilla/5.0 + (Windows + NT + 10,0 + Win64 + 64)