In the Android SDK 23 onReceivedError(WebView view, int errorCode, String description, String failingUrl)
has been deprecated and replaced with onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)
. However if I put my phone in Airplane mode and load an url on my WebView, only the deprecated version of the method is called.
onReceivedHttpError (WebView view, WebResourceRequest request, WebResourceResponse errorResponse)
is also not useful, as it only detects errors higher than 500, and I am getting a 109 status code.
Is there a non-deprecated way of detecting that my WebView failed to load?
onReceivedError
, because it's the feature of the OS, not of an SDK. Also, the "error code 109" (I guess, this is net::ERR_ADDRESS_UNREACHABLE) is not an HTTP error code, it's Chrome's error code.onReceivedHttpError
is only called for the errors received from the server via HTTP. When the device is in airplane mode, it can't possibly receive a reply from a server.