Javascript 如何检测网站是在 Android 的股票浏览器中加载还是在另一个应用程序的 WebView 中加载?我想在这两种情况下运行稍微不同的代码。
检测 Android 浏览器或 WebView 内部
IT技术
javascript
android
2021-01-30 15:20:44
3个回答
活动 -> onCreate
this.webView.getSettings().setUserAgentString(
this.webView.getSettings().getUserAgentString()
+ " "
+ getString(R.string.user_agent_suffix)
);
资源 -> 值 -> strings.xml
<string name="user_agent_suffix">AppName/1.0</string>
Javascript
function() isNativeApp {
return /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
您可以检查请求的页面上的服务器变量,看看它是否来自您的应用程序并相应地设置一个 javascript 变量
if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.company.app")
echo 'var isAndroidApp=true;';
else
echo 'var isAndroidApp=false;';
- 用你的包名替换 com.company.app
在较新版本的 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
其它你可能感兴趣的问题