【问题标题】:How to open desktop site in webview in android如何在android的webview中打开桌面站点
【发布时间】:2017-03-21 15:39:41
【问题描述】:

我需要在 android webview 中打开桌面站点,我已经尝试如下但它不起作用。

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);

【问题讨论】:

    标签: android webview android-webview


    【解决方案1】:

    这是完美的解决方案:

     private static final String DESKTOP_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36";
     private static final String MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; Android 4.4; en-us; Nexus 4 Build/JOP24G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30";
    
     //Choose Mobile/Desktop client.
     WebSettings settings = mWebView.getSettings();
     settings.setUserAgentString(DESKTOP_USER_AGENT);
    

    更新

    不再支持上述 MOBILE_USER_AGENT。 所以使用下面给出的用户代理

    private static final String MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; Android 9; Redmi 6 Pro Build/PKQ1.180917.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.105 Mobile Safari/537.36";
    

    【讨论】:

      【解决方案2】:

      试试这个:

          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);
      

      【讨论】:

      • 不工作它每次打开移动网站而不是桌面网站
      • 我想在 webview 中打开桌面站点
      • 您在 webview 中设置的 webview 客户端是什么?
      【解决方案3】:

      您可以使用this WebView subclass 中的 setDesktopMode(true) 或阅读implemented 的内容。所做的是 (a) 将用户代理设置为不包含“mobile”或“Android”这些词,以及 (b) 将视口设置为更大的宽度。

      【讨论】:

      【解决方案4】:

      对于移动用户代理

      webview.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U; Android 4.4; en-us; Nexus 4 Build/JOP24G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30");

      对于桌面站点代理

      browser.getSettings().setUserAgentString("Mozilla/5.0 (Linux; diordnA 7.1.1; suxeN 6 Build/N6F26U; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 eliboM Safari/537.36");

      大量搜索此代码在 Android webview 上运行良好。

      【讨论】:

        【解决方案5】:

        这对我有用:参考@saurabh gutpa 提到的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);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-06
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多