设置WebView以查看桌面站点和非移动站点

时间:2013-02-04 13:42:54

标签: android android-webview

我已经完成了很多关于Stack Overflow和大量Google研究的研究,但我找不到任何实际工作。我希望该网站能够查看桌面网站而不是移动网站。我该怎么做呢?我希望它直接转到桌面站点。

WebView myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.loadUrl("http://www.apotter96.webs.com/");
}

10 个答案:

答案 0 :(得分:29)

更改webview的用户代理

 String newUA="Foo/"; // Change this to desired UA

 String newUA= "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0";
 mWebView.getSettings().setUserAgentString(newUA);

答案 1 :(得分:6)

您可以使用WebView将视图显示为适合移动显示的桌面版网站。

        webView = (WebView)findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);

        webView.getSettings().setSupportZoom(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.getSettings().setDisplayZoomControls(false);

        webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webView.setScrollbarFadingEnabled(false);

答案 2 :(得分:4)

此方法可帮助您在webview上设置DesktopMode

public void setDesktopMode(WebView webView,boolean enabled) {
    String newUserAgent = webView.getSettings().getUserAgentString();
    if (enabled) {
        try {
            String ua = webView.getSettings().getUserAgentString();
            String androidOSString = webView.getSettings().getUserAgentString().substring(ua.indexOf("("), ua.indexOf(")") + 1);
            newUserAgent = webView.getSettings().getUserAgentString().replace(androidOSString, "(X11; Linux x86_64)");
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        newUserAgent = null;
    }

    webView.getSettings().setUserAgentString(newUserAgent);
    webView.getSettings().setUseWideViewPort(enabled);
    webView.getSettings().setLoadWithOverviewMode(enabled);
    webView.reload();
}

将其称为

移动模式:setDesktopMode(webView, false);

桌面模式:setDesktopMode(webView, true);

答案 3 :(得分:3)

唯一适用于我的解决方案(javascript将执行很多次,但这是目前唯一可行的解​​决方案)

        @Override
        public void onLoadResource(WebView view, String url) {
           view.evaluateJavascript("document.querySelector('meta[name=\"viewport\"]').setAttribute('content', 'width=1024px, initial-scale=' + (document.documentElement.clientWidth / 1024));", null);
        }

您也可以设置桌面UA字符串

webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");

答案 4 :(得分:1)

如果浏览器更新出错,则可以尝试设置苹果Safari UA或将UA替换为Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 这对我来说100%有效。

webview =(WebView)findViewById(R.id.webView);
        webview.getSettings().setMinimumFontSize(12);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.getSettings().setUseWideViewPort(true);
        webview.getSettings().setSupportZoom(true);
        webview.getSettings().setBuiltInZoomControls(true);
        webview.getSettings().setDisplayZoomControls(false);
        webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webview.setScrollbarFadingEnabled(false);
        String newUA= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50";
        webview.getSettings().setUserAgentString(newUA);
        webview.loadUrl("https://solveforum.com");

答案 5 :(得分:0)

答案 6 :(得分:0)

经过长时间的搜索,这对我有用 -

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);

    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(false);

    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);

答案 7 :(得分:0)

对接受的答案进行了一些更新。这是新的字符串。之所以这样写,是因为评论中有人提到“更新浏览器”。

String newUA= "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1";
mWebView.getSettings().setUserAgentString(newUA);

答案 8 :(得分:0)

尝试一下

String ua = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";

答案 9 :(得分:0)

某些网站不使用用户代理来确定是否必须显示网页的移动版或桌面版。 某些页面使用屏幕尺寸执行此操作。

我构建了一个应用程序以在桌面模式下使用页面,但无法正常工作。始终显示移动版本,因为页面使用屏幕尺寸而不是用户代理字符串。