Android:如果互联网在onPageStarted调用之后,则不会调用WebViewClient onPageFinished / onReceivedError

时间:2016-03-28 07:07:41

标签: android android-webview webviewclient

如果没有加载网页,当没有互联网连接时,我正在向用户显示错误消息。

但问题是:在调用onPageStarted方法(这里显示进度对话框)之后,如果我自己断开互联网连接,则不会调用onPageFinished / onReceivedError方法。因此,我无法向用户显示错误消息,也无法关闭对话框。进度对话框继续显示。

我在想WebView有一个超时,它由自己处理。但事实并非如此。没有时间发生。我等了15分多钟,但没有出去。

我怎么能处理这个?

1 个答案:

答案 0 :(得分:0)

有两个onReceivedError();

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

这仅适用于Android M+(API >=23);,如果你设备的android api版本< 23 onReceivedError()无法执行

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){...}

此方法适用于所有Android版本;

ps:errorCode并不意味着 http 状态代码(如404,403),您可以看到api doc