如何区分android web视图和浏览器视图?

如何区分android web视图和浏览器视图?,android,browser,webview,native,Android,Browser,Webview,Native,我们有一个android网站,它在webview(即从应用程序)和web浏览器中打开 在这两种情况下,我们必须表现出不同的行为。是否有任何方法可以区分请求是来自app webview(在本机浏览器上内部打开应用程序)还是直接浏览器请求 我们不能依赖用户代理,因为我们不能更新客户端 我想这样做: if(webview) {} else if(browser) {} 这是一个高度优先的问题,所以任何人有任何线索来解决这个问题,请尽快发布 在Webview中设置用户代理字符串,并将其放入代码中

我们有一个android网站,它在webview(即从应用程序)和web浏览器中打开

在这两种情况下,我们必须表现出不同的行为。是否有任何方法可以区分请求是来自app webview(在本机浏览器上内部打开应用程序)还是直接浏览器请求

我们不能依赖用户代理,因为我们不能更新客户端

我想这样做:

if(webview)
{}
else if(browser)
{}

这是一个高度优先的问题,所以任何人有任何线索来解决这个问题,请尽快发布

在Webview中设置用户代理字符串,并将其放入代码中

  yourWebView.getSettings().setUserAgentString("Some user agent String to identify");

请参阅回答,它解释了如何执行此操作。

通过webview发送的所有http请求都有下面的标题。您可以使用它来检测从何处获得请求

if(window._cordovaNative) {
    // its a web view
} else {
 // its a web browser
}
X-Requested-With: the.app.packageName

阿伦,谢谢你的回复!但我们无法修改用户代理,因为许多客户端正在使用该应用程序,并且他们自行配置了APK。我们只能在我们的网站上进行更改(仅从javascript检查)。我们有没有办法在网页上找到它是在浏览器中打开的还是在网络视图中打开的???Android在其网络视图和默认Android浏览器中使用相同的引擎。因此,您的脚本应该在webview和默认android浏览器中以相同的方式工作。如果需要不同的行为,可以考虑在URL中添加一些默认参数。但是android重新开始使用setUserAgentString!