想要使用uastring在我的webview中加载桌面版本

时间:2011-11-29 11:14:18

标签: android webview user-agent

我正在为三星Galaxy,moto xoom和kindle fire等平板电脑开发应用程序。

我的webview没有加载我提供的桌面版网址。

我尝试通过设置用户代理,但我不知道什么是“ua字符串”将解决我的问题。当我记录了ua字符串时,我得到了以下内容

代码:

String ua = m_webview.getSettings().getUserAgentString() ;
Log.i("AboutActivity", "UA = "+ua) ;

UA字符串:

UA = Mozilla/5.0 (Linux; U; Android 3.1; en-US; GT-P7500 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

我在某处读到了我需要删除ua字符串中的“mobile”但我在打印的ua字符串中没有“移动”。

我已经通过添加桌面来尝试以下ua字符串,即使它不会出现

 String ua = "Mozilla/5.0 (Linux; U; Android 3.1; en-US; GT-P7500 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Desktop Safari/534.13";
 mWebview.getSettings().setUserAgentString(ua);

2 个答案:

答案 0 :(得分:7)

可能是因为您在用户代理中有Android,他们知道您在手机上。尝试更多桌面浏览器,例如:

String ua = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0";

答案 1 :(得分:0)

这对我有用:请参阅this

    public void setDesktopMode(final boolean enabled) {
    final WebSettings webSettings = webview.getSettings();

    final String newUserAgent;
    if (enabled) {
        newUserAgent = webSettings.getUserAgentString().replace("Mobile", "eliboM").replace("Android", "diordnA");
    }
    else {
        newUserAgent = webSettings.getUserAgentString().replace("eliboM", "Mobile").replace("diordnA", "Android");
    }

    webSettings.setUserAgentString(newUserAgent);
    webSettings.setUseWideViewPort(enabled);
    webSettings.setLoadWithOverviewMode(enabled);
    webSettings.setSupportZoom(enabled);
    webSettings.setBuiltInZoomControls(enabled);
}