2011-12-27 75 views
2

我是Android应用开发的新手。 我正在管理显示WebView并加载给定的URL。当我点击WebView中的链接时,我得到一个空白的白色屏幕。WebViewClient显示白屏

当我在设备上使用Chrome浏览器(Galaxy TAB)时,它正在工作。其实我试图在我的WebView中模仿Chrome。

有谁知道有什么问题?

这是我在我的WebView使用WebViewClient:

siteView.setWebViewClient(new WebViewClient() { 

       @Override 
       public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { 

        siteView.loadUrl(urlNewString); 
        return true; 
       } 

       @Override 
       public void onPageStarted(WebView view, String url, Bitmap favicon) { 

        super.onPageStarted(view, url, favicon); 

        if (dialog == null || !dialog.isShowing()) { 

         if(isFirstTime) { 

          dialog = ProgressDialog.show(MyActivity.this, "", getString(R.string.loadingMessage), true, false); 
          MyActivity.isFirstTime = false; 
         } 
        } 
       } 

       @Override 
       public void onReceivedError(WebView view, int errorCode, 
         String description, String failingUrl) { 

        Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
       } 
      }); 

回答

3

问题可能出在你的shouldOverrideUrlLoading功能。您正在接收“查看”作为参数,并使用“siteView”加载网址。你的功能应该是这样的:

public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { 

     view.loadUrl(urlNewString); // you are using siteView here instead of view 
     return true; 
    } 

希望这适用于你。

+2

'shouldOverrideUrlLoading()'的文档明确指出,您应该返回false以让web视图正常加载URL。你上面的内容相当于简单地返回false。 – 2012-08-09 20:44:50

3

尝试siteView.invalidate() 加载任何东西之前到的WebView

1

确保网址开头的http://。没有http,它只会显示白屏。因为大多数情况下你会复制网址,它将以www.something.com/asdf开头。这是行不通的。将其更改为http://www.something.com/asdf