package com.jdroid.android.webview; import android.net.http.SslError; import android.support.annotation.NonNull; import android.view.View; import android.webkit.SslErrorHandler; import android.webkit.WebView; import android.webkit.WebViewClient; import com.jdroid.android.application.AbstractApplication; import com.jdroid.java.exception.ConnectionException; import com.jdroid.java.exception.UnexpectedException; public class DefaultWebViewClient extends WebViewClient { private Boolean errorReceived = false; @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { if ((errorCode != WebViewClient.ERROR_CONNECT) && (errorCode != WebViewClient.ERROR_HOST_LOOKUP)) { AbstractApplication.get().getExceptionHandler().logHandledException( new UnexpectedException("WebView error: " + errorCode + ". " + description)); } else { AbstractApplication.get().getExceptionHandler().logHandledException(new ConnectionException(description)); } view.setVisibility(View.GONE); errorReceived = true; } @Override public void onReceivedSslError(WebView view, @NonNull SslErrorHandler handler, SslError error) { AbstractApplication.get().getExceptionHandler().logHandledException( new UnexpectedException("WebView Ssl error: " + error.getPrimaryError())); handler.cancel(); } public Boolean isErrorReceived() { return errorReceived; } }