Android,webview用户代理与浏览器用户代理

时间:2012-10-04 12:17:41

标签: android android-webview user-agent

我正在构建我的网站,我想知道用户是使用Android的浏览器还是使用带有webview的应用程序。

有可能??

7 个答案:

答案 0 :(得分:13)

根据Chrome dev docs:"如果您尝试区分WebView和Android版Chrome,则应查找是否存在版本/ XX 字符串WebView用户代理字符串。"

答案 1 :(得分:12)

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

使用像这样的用户代理:

  

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平板电脑。

另一方面,这个用户代理:

  

Mozilla / 5.0(Linux; U; Android 2.2.1; en-us; Nexus One Build / FRG83)AppleWebKit / 533.1(KHTML,类似Gecko)版本/ 4.0 Mobile Safari / 533.1

包含“移动”和“安卓”,因此在此Nexus One上为网络冲浪者提供移动体验!

FROM https://stackoverflow.com/a/7327201

Webview中的User-Agent与默认移动浏览器中的相同[/ p>]

答案 2 :(得分:9)

仅供参考:用户代理无法完成此操作,但可以检测到。 Android的Web视图会发送一个额外的标题“X-Requested-With”。此标头的值将是运行webview的应用程序名称空间。

例如Dolphin浏览器发送:“mobi.mgeek.TunnyBrowser” 我的测试应用发送了:“com.jamestymann.identifyawebview”

标准浏览器实际上根本不发送此标题,因此很容易检测到这些标题。

我有两点需要注意:

  • “X-Requested-With”是标准标题,可能会从桌面上的完整网页/浏览器发送。 (例如,这用于检测具有这些值“X-Requested-With XMLHttpRequest”的ajax调用)
  • 大多数Google Play商店浏览器都使用网页浏览来显示网页。即使这些是完整的浏览器,他们仍然会发送此标题。因此,如果您打算禁用此功能,则可能需要小心,因为您可能会禁用人们的默认浏览器。

答案 3 :(得分:1)

有关更多最新信息,请查看此处https://developer.chrome.com/multidevice/user-agent lolipop和更新的设备在UserAgent中包含wv)

答案 4 :(得分:0)

是的,您可以通过添加这些元标记来优化您的网站

<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/

找到更多信息

答案 5 :(得分:0)

您可以将以下代码用于已检查的android webview或浏览器。

public static bool is_mobile_and_webview()
{
     return System.Web.HttpContext.Current.Request.Browser.IsMobileDevice && System.Web.HttpContext.Current.Request.UserAgent.Contains("; wv");
}

答案 6 :(得分:-3)

我使用此服务器端访问PHP中客户端浏览器(代理)的信息

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

可以解释这个样板 - 因此你会知道代理......

在客户端 - navigator.userAgent