2011-12-27 77 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