2

我的 webview 有一个奇怪的问题。我有一个用于显示网页的基本 web 视图。这在大多数情况下都有效,但特别是有一个站点不会呈现。我不知道如何开始调试这个问题。这是我的 webview 初始化代码:

    webView = (WebView) findViewById(R.id.rss_webView);
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);
            return true;
        }
    });

    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {

            pb.setProgress(progress);


            if (progress == 100)
                pb.setVisibility(View.GONE);
            else
                pb.setVisibility(View.VISIBLE);

        }


    });

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setSupportZoom(true);

    webView.loadUrl(URL);

有问题的 URL 是:http: //twitter.com/AdamSchefter/statuses/236553635608285184

此页面(和其他 twitter 页面)在屏幕上呈现为一个空白的灰色方块,没有任何内容。

我注意到,如果我使用普通的 Android 浏览器打开 url,它会被重定向到移动版本。据我所知,webview 并没有这样做。在 shouldOverrideUrlLoading() 方法中设置断点时,我没有收到任何重定向 url。

我已经扫描了 logcat 是否有任何错误迹象。我认为 webview 根本不执行任何日志记录来记录 cat (除了没有加载 webview 之外),因为那里什么都没有。

我不知道如何追踪这个问题。有什么想法吗?

我有很多需要显示的 Twitter 资源,但我无法控制 URL。

4

1 回答 1

3

好的,通过在我的代码中添加以下行来完成

webView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U;`
Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like
Gecko) Version/4.0 Mobile Safari/530.17");

我是从 stackoverflow Problems loading mobile.twitter in webview 的这篇文章中得到的。

webview中的android移动twitter页面没有打开?

此外,如果它没有将您重定向到 twitter 的移动版本,您可以将 mobile 附加到它,即 mobile.twitter.com

于 2012-08-22T00:16:28.227 回答