在Android Browser或WebView内部检测

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

活动 – > onCreate

 this.webView.getSettings().setUserAgentString( this.webView.getSettings().getUserAgentString() + " " + getString(R.string.user_agent_suffix) ); 

Res – > Values – > strings.xml

 <string name="user_agent_suffix">AppName/1.0</string> 

使用Javascript

 function() isNativeApp { return /AppName\/[0-9\.]+$/.test(navigator.userAgent); } 

您可以检查被请求的页面上的服务器variables,看它是否来自您的应用程序,并相应地设置一个JavaScriptvariables

 if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.company.app") echo 'var isAndroidApp=true;'; else echo 'var isAndroidApp=false;'; 
  • 用你的包名replacecom.company.app