Android, WebView User agent vs browser user agent

Я создаю свой сайт, и я хочу знать, использует ли пользователь браузер Android или приложение с webview.

это возможно ??

6 ответов


от: http://googlewebmastercentral.blogspot.com/2011/03/mo-better-to-also-detect-mobile-user.html

с User-Agent, как это:

Mozilla / 5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, как Gecko) версия/4.0 Safari/534.13

поскольку нет" мобильной " строки, обслуживайте этого пользователя настольной версией (или версией, настроенной для сенсорных устройств с большим экраном Android). Этот Пользовательский агент сообщает нам, что они исходят от устройства с большим экраном, планшета XOOM.

с другой стороны, этот User-Agent:

Mozilla / 5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, как геккон) версия/4.0 Mobile Safari/533.1

содержит "мобильный" и "android", так что служить веб-серфер на этом Nexus One мобильный опыт!

от https://stackoverflow.com/a/7327201

похоже, что User-Agent в webview такой же, как и в мобильном браузере по умолчанию


по состоянию на Chrome dev docs: "Если вы пытаетесь различать WebView и Chrome для Android, вы должны искать наличие версии/Х. Х строка в строке агента пользователя WebView."


FYI: это невозможно сделать с помощью пользовательских агентов, однако его можно обнаружить. Веб-представления Android отправляют заголовок добавления "X-Requested-With". Значением этого заголовка будет пространство имен приложения, в котором выполняется webview.

например Dolphin browser отправляет: "mobi.mgeek.TunnyBrowser" Мое тестовое приложение отправлено: "com.джеймстиманн.identifyawebview"

стандартный браузер фактически не отправляет этот заголовок вообще,поэтому его довольно легко обнаружить.

У меня есть два предостережения, хотя:

  • "X-Requested-With" является стандартным заголовком и потенциально может быть отправлен с полномасштабных веб-страниц/браузеров с настольных компьютеров. (Например, это используется для обнаружения вызовов ajax с этими значениями "X-Requested-With XMLHttpRequest")
  • большинство браузеров google play store используют webviews для отображения веб-страниц. Несмотря на то, что это полномасштабные браузеры, они все равно отправят этот заголовок. Поэтому, если вы намерены отключить эту функцию, вы возможно, вы захотите быть осторожными, поскольку вы можете отключить браузеры по умолчанию.

для получения дополнительной информации смотрите здесь https://developer.chrome.com/multidevice/user-agent lolipop и новые устройства включают wv) в UserAgent.


да и вы можете оптимизировать ваш сайт, добавив эти мета-теги

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="HandheldFriendly" content="True" />

вы можете найти более подробную информацию здесь http://learnthemobileweb.com/2009/07/mobile-meta-tags/


Я использую этот сервер, чтобы получить доступ к информации о браузере (агенте) клиента в PHP

...
$_SERVER['HTTP_USER_AGENT']; // Different browsers ...
...

этот шаблон может быть интерпретирован-следовательно, вы будете знать агента ...

на стороне клиента - навигатор.Ашераденс