2012-10-22 32 views
19

Tôi có chế độ xem web trong ứng dụng của mình, tuy nhiên đôi khi do kết nối webview không tải được và tôi nhận được trang web mặc định không khả dụng. Tôi muốn hiển thị cảnh báo nếu không thể tải chế độ xem web. Có anyway tôi có thể kiểm tra (có thể trong hàm shouldOverridePageLoad) mà một webview nạp thành công? Cảm ơn một lần nữaCách kiểm tra xem trang web không tải được trang (android)?

Trả lời

46

Sử dụng WebClient vào xem web của bạn như sau:

webView.setWebViewClient(new WebViewClient(){ 

@Override public void onReceivedError(WebView view, WebResourceRequest request, 
     WebResourceError error) { 
    super.onReceivedError(view, request, error); 
    // Do something 
    } 
}); 
+1

Cảm ơn người đàn ông. Tôi phải đã bỏ qua phương pháp này trong ứng dụng webview. Tôi sẽ đánh dấu đây là câu trả lời. – HAxxor

+0

và "onReceivedSslError" – Hugo

+3

Bạn nên xem câu trả lời này: http://stackoverflow.com/a/33419123/149008 vì onReceivedError không được dùng nữa trong API23 – nacho4d

9

Mở rộng về câu trả lời của Damien về việc sử dụng WebViewClient, có bốn người nghe sẵn trên WebViewClient để kiểm tra sự thành công và thất bại của các trang web tải.

webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
    } 

    @Override 
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
    } 

    @Override 
    public void onReceivedHttpError(
      WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
    } 

    @Override 
    public void onReceivedSslError(WebView view, SslErrorHandler handler, 
            SslError error) { 
    } 
}); 

Ngoài ra còn có:

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

được phản đối ủng hộ tình trạng quá tải của nó đề cập trong đoạn code trên.

Các vấn đề liên quan