Javascript如何检测网站是在Android的股票浏览器中加载还是加载到另一个应用程序的WebView中?我想在这两种情况下运行略有不同的代码。
答案 0 :(得分:53)
活动 - >的onCreate 强>
this.webView.getSettings().setUserAgentString(
this.webView.getSettings().getUserAgentString()
+ " "
+ getString(R.string.user_agent_suffix)
);
Res - >值 - >的strings.xml 强>
<string name="user_agent_suffix">AppName/1.0</string>
<强>的Javascript 强>
function() isNativeApp {
return /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
答案 1 :(得分:5)
您可以检查所请求页面上的服务器变量,看看它是否来自您的应用并相应地设置了一个javascript变量
'example.com/check.php?email=' . urlencode(abcdefg@gmail.com)
答案 2 :(得分:1)
在WebView,Lollipop及更高版本的较新版本中,您可以通过在用户代理字符串中查找wv字段来区分WebView:
Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile Safari/537.36
https://developer.chrome.com/multidevice/user-agent#webview_user_agent