在Android浏览器或WebView中检测

时间:2011-07-21 21:42:28

标签: javascript android

Javascript如何检测网站是在Android的股票浏览器中加载还是加载到另一个应用程序的WebView中?我想在这两种情况下运行略有不同的代码。

3 个答案:

答案 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)
  • 将com.company.app替换为您的包名称

答案 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