2013-03-09 187 views
0

我想在webview未正確加載時顯示警報。當連接失敗時,我已經顯示警告,但如果webview是從緩存中加載的,我不想顯示該警報。 解決方案可能是知道webview是否已從緩存中正確加載,但我不知道如何做到這一點。 有什麼想法?謝謝!檢查webview是否正確加載android

回答

1

我發現了一個完整的工作解決方案,適用於所有可能的情況。它基於保存並手動檢索緩存數據。如果我有我的webview緩存,我從我保存它的地方加載它。如果沒有,我檢查互聯網連接,並將其保存在我的「自定義」緩存中(位於我的應用程序緩存目錄中)。然後,我只顯示連接警報,當我沒有我的webview「緩存」,我沒有互聯網連接。

0

我不知道這是否有幫助,但我使用下面的代碼來顯示一個警告對話框,當我的webview中發現錯誤。

@Override 
    public void onReceivedError(WebView view, int errorCode, 
      String description, String failingUrl) { 
     AlertDialog.Builder localBuilder2 = new AlertDialog.Builder(Webview_Main.this); 
     localBuilder2.setTitle(R.string.webview_error_received_title); 
     localBuilder2.setMessage(R.string.webview_error_received); 
     localBuilder2.setIcon(R.drawable.ic_launcher); 
     localBuilder2.setPositiveButton("Ok", 
       new DialogInterface.OnClickListener() { 
      public void onClick(
        DialogInterface paramDialogInterface, 
        int paramInt) { 
       finish(); 
      } 
     }); 
     localBuilder2.show(); 
    }; 
+0

問題是,當我沒有互聯網連接,但我的webview在緩存中,此代碼將返回一個警報,但webview將顯示正確,我想避免顯示該警報...但是謝謝你的建議! – jprog 2013-06-06 10:03:52

0

最後我找到了一個黑客,但我想收到更多可行的解決方案,因爲我確信它不是最好的方法。 我使用「onScaleChanged」事件來確定webview是否已加載圖像(在我的情況下,我只加載圖像)。該事件在從Internet或緩存中加載圖像時觸發,因此如果它被觸發,並且某些特殊比例值爲,則表示圖像尚未加載。在某些情況下,根據圖像的大小和比例,這些值並不表示它是否正確加載,但在大多數情況下,它的確如此(並且選擇圖像的比例始終正確)。

+0

我會接受其他答案,如果有人能夠使其始終工作,而不是在某些情況下,使用或不使用「onScaleChanged」。謝謝! – jprog 2013-06-06 10:41:13