在Android的WebViewClient中出现空白页面

5
我正在尝试打开Twitter链接:http://mobile.twitter.com/pawan_rathore88,并将其显示在我的活动中。如果我将WebViewClient设置为webview,我会得到一个空白页面。但是,当我加载URL而不设置任何WebViewClient时,它会正确地加载页面。有没有人知道可能出现的问题。以下是我的代码片段。
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
//if I comment the following line then webpage loads properly in default Android browser.
webview.setWebViewClient(new WebViewClient() {
   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                 Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
               }
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {

    Log.v(tag, "url :" + url);
    view.loadUrl(url);
    return true;
        }
 });
    webview.loadUrl("http://mobile.twitter.com/pawan_rathore88");

感谢你,Pawan。

你说的“空白”页面是什么意思?是指加载页面时出现错误无法加载吗? - JoxTraex
不,只是显示白色页面上什么都没有。 - Pawan
链接可以使用,很有趣……尝试编写一个应用程序仅加载网页并查看其是否有效。可能会与某些冲突。 - JoxTraex
我已经写了代码,如果我不设置WebViewClient,然后简单地加载URL,它就会正常工作。 - Pawan
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/6917/discussion-between-joxtraex-and-pawan - JoxTraex
显示剩余2条评论
3个回答

1
经过对代码进行微调,似乎是用户代理的问题,将其更改为桌面用户代理似乎可以解决这个问题:
  WebView web = (WebView)findViewById(R.id.webView1);
        web.getSettings().setUserAgentString("Mozilla/5.0 (Macintosh; " +
            "U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, " +
            "like Gecko) Version/5.0 Safari/533.16");

        String url = "http://mobile.twitter.com/pawan_rathore88";
        web.loadUrl(url);

抱歉,它正在加载桌面网页,而不是移动设备专用的网页。 - Pawan

0

这正是我的问题。桌面版本加载得非常好,但移动版本不行。如果在默认浏览器上运行,则移动版本通常可以运行。我认为问题在于用户代理字符串的性能不佳。但现在找不到它。


0

目前 Twitter 存在问题,在所有 WebKit 移动浏览器中都无法正常运行。


Android浏览器扩展了基于WebKit的基本功能。别再做太多假设了,Pawan,请做些研究。 - JoxTraex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接