首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WebView -请求桌面站点始终重定向到移动站点

WebView -请求桌面站点始终重定向到移动站点
EN

Stack Overflow用户
提问于 2018-06-07 19:43:59
回答 2查看 312关注 0票数 1

我试图用自定义用户代理加载webview中的桌面网站,但网站总是检测到我来自移动,所以他们将我重定向到移动网站。

我使用了下面的代码:

代码语言:javascript
复制
 webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setDomStorageEnabled(true);
        webView.getSettings().setSupportZoom(false);
        webView.getSettings().setBuiltInZoomControls(false);
        webView.getSettings().setDisplayZoomControls(false);

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

 webView.setWebViewClient(new WebViewClient()
        {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                Log.d("WebView", "onPageStarted.." + url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                Log.d("WebView", "onPageStarted.." + url);
                super.onPageFinished(view, url);
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                // TODO Auto-generated method stub
                Log.d("WebView", "onLoadResource.." + url);
                super.onLoadResource(view, url);
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                System.out.println("shouldOverrideUrlLoading :-" + url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
        webView.loadUrl("https://xxxxxxxx.com");
EN

回答 2

Stack Overflow用户

发布于 2018-06-07 19:53:13

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-06-07 21:05:08

是的,为此,您必须添加UserAgentString并将其设置为WebView设置。

为此,我创建了一种方法,通过该方法,我们可以在WebView中启用和禁用桌面视图。

如果要在WebView中设置桌面视图,请通过传递WebView和boolean true来调用此方法。

代码语言:javascript
复制
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();
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50740338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档