Мне бы хотелось узнать, какую строку User Agent (UA) использует приложение Ubuntu Web Browser на мобильных устройствах и какое влияние это оказывает на существующие веб-сайты?
Например, будет ли большинство сайтов вести себя с ним корректно? Есть ли какой-то запасной UA на случай, если некоторые веб-сайты не будут с ним работать?
решение1
Текущая строка UA по умолчанию имеет следующий вид:
Mozilla/5.0 (Ubuntu; <formFactor>) WebKit/<webkitVersion>
где <formFactor>
— один из вариантов Mobile
, Tablet
или Desktop
, а <webkitVersion>
— версия движка рендеринга WebKit (в настоящее время 537.21
).
Итак, на телефоне текущая строка UA по умолчанию выглядит так:
Mozilla/5.0 (Ubuntu; Mobile) WebKit/537.21
Эта строка UA по умолчанию намеренно короткая, обоснование основано наИсследование строк B2G UA от Mozilla.
Известно, что ряд веб-сайтов и веб-приложений не очень хорошо работают с этим стандартным UA (веб-сайты в наши дни выполняют невероятно сложный анализ UA на стороне сервера, чтобы определить возможности платформы и предоставить соответствующий персонализированный контент).
Чтобы преодолеть эти проблемы, браузер Ubuntu Touch встраивает механизм переопределения, который позволяет переопределять UA по умолчанию для заданного доменного имени (обычно добавление токена Android
дает нам нужный контент, хотя часто это достигается ценой раздражающих подсказок установить собственные приложения Android, что, конечно, не относится к платформе). Этот механизм является краткосрочным решением. Правильное долгосрочное решение — это евангелизация, когда пользователи и разработчики связываются с авторами веб-сайтов, чтобы попросить их страницы и приложения распознавать нашу строку UA по умолчанию и предоставлять адекватный контент.
Обратите внимание, что в ближайшем будущем мы перейдем с QtWebKit наОкись(тонкий слой поверхAPI контента Chromium) для движка рендеринга, то есть рендеринг и возможности будут практически такими же, как у Chrome. Чтобы отразить это и улучшить совместимость с существующими веб-сайтами, нам нужно будет обновить строку UA по умолчанию (она будет ближе к UA по умолчанию Chrome на устройствах).
решение2
Ubuntu Touch UAявляется:Mozilla/5.0 (Ubuntu; $FormFactor) WebKit/$WebKitRev
где $FormFactor
переменная - "Mobile" ИЛИ "Tablet", а $WebKitRev
содержит версию движка WebKit. Также основная версия "5.0" может со временем измениться.
Обратите внимание, что UA современного браузера можно изменить с помощью плагина или простой перенастройки; также вы должны знать как разработчик, что SEO не любит контент, основанный на User Agent.Если вам необходимо распознать User Agentне выполнять точное совпадение ("A"=="A"), а выполнять поиск подстрок для подстрокUbuntu
И(Mobile
ИЛИ Tablet
) для предотвращения проблем совместимости с будущими версиями мобильного ПО.
Обратите внимание, что мобильный браузер Ubuntu Touch может изменять UA в режиме реального времени для исправления (очевидно)некоторыйнесовместимости: в другой раз, не полагайтесь только на этот механизм.
Хорошего дня,
дайте нам знать, если у вас есть еще вопросы.
Источник:daker.me
решение3
Есть более простой способ проверить строку user-agent, отправленную любым браузером. Вы можете просто зайтиhttp://www.murl.mobi/headers.phpи эта страница извлекает и отображает заголовки HTTP-запроса. Недавний пост наАнализ пользовательского агента с использованием Pythonпредоставляет программный подход к анализу фактической строки агента пользователя, видимой веб-сервером.