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

a f*_*yer 20 user-agent android android-webview

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

可能吗 ??

Mig*_*res 15

根据Chrome开发人员文档:"如果您尝试区分WebView和Android版Chrome,则应该在WebView用户代理字符串中查找版本/ XX字符串的存在."


小智 14

来自: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的构建/ 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上为网络冲浪者提供移动体验!

来自/sf/answers/512904101/

看起来User-Agent在webview中与默认移动浏览器中的相同

  • 我的问题是有人正在使用 webview en android 应用程序加载我的移动网络,而我无法在 webview 中执行任何操作... (2认同)

jty*_*ann 9

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

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

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

我有两点需要注意:

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

  • 有谁知道嵌入在应用程序中的 iPhone 浏览器是否会执行类似的操作? (2认同)