我们有一个 android 网站,它在 webview(即从应用程序)和网络浏览器中打开。
在这两种情况下,我们都必须表现出不同的行为。有什么方法可以区分请求是来自应用程序 webview(在本机浏览器上内部打开应用程序)还是直接浏览器请求。
我们不能依赖用户代理,因为我们不能更新客户端。
我想做这样的事情:
if(webview)
{}
else if(browser)
{}
这是一个高优先级的问题,所以任何有任何线索解决这个问题的人,请尽快发布!
在 Webview 中设置用户代理字符串并在您的代码中获取它
yourWebView.getSettings().setUserAgentString("Some user agent String to identify");
看到这个答案它解释了如何做到这一点。
if(window._cordovaNative) {
// its a web view
} else {
// its a web browser
}
通过 webview 发送的所有 http 请求都有下面的标题。您可以使用它来检测您从哪里获得请求
X-Requested-With: the.app.packageName