Android WebView和Web浏览器检测

时间:2016-10-21 19:27:51

标签: php android webview

编辑: 我认为browserset.setUserAgentString("SITEAPP");应该解决我的问题。我会尝试发布结果。

刚刚为我工作的公司制作了一个Android应用程序,我有这个小问题。我们使用适用于所有浏览器的流体网站设计,我们想为我们公司的网站制作应用程序,但不是每次网站更改时重建应用程序,我们只是使用WebView加载网站..

这很有效。该应用程序看起来很神奇,它显示完全像股票Android浏览器。现在的问题是,当他们在他们的股票Android浏览器上访问该网站时,他们会得到一个弹出窗口,上面写着“尝试我们很棒的新应用程序”,它只显示在用户代理字符串中输出android的浏览器。但是当你打开我们制作的新应用程序,它加载相同的网页时,服务器在用户代理上看到了android,使用应用程序的人也看到了弹出窗口?本质上是代码:

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua, 'android') !== false) {
    echo "Android Browser";
}

如何使用webview使我的Android浏览器和我的应用程序浏览器与我的服务器看起来不一样,这样他们就不会在我的webapp上弹出窗口?有没有办法在hte app上的WebView设置中定义浏览器用户代理?或者更好的解密方法,如果它的Android手机没有使用我的应用程序?感谢。

1 个答案:

答案 0 :(得分:0)

抱歉这个愚蠢的问题,继承了我对webview的最新调用

    mWebView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setUserAgentString("APPNAMEGOESHERE");
    webSettings.setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.sitename.com/");
    mWebView.setWebViewClient(new BrowseWithin());

通过添加setUserAgentString()功能,我能够将我的应用用户字符串更改为不同的内容,并修复了问题。