当 Android 应用程序在向服务器发出网络请求时,如果服务器离线,将导致 WebView 错误。在这种情况下,我们可以使用以下方法来确保应用程序不会崩溃:
WebView webView = findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
if (errorCode == ERROR_HOST_LOOKUP || errorCode == ERROR_CONNECT || errorCode == ERROR_TIMEOUT) {
view.loadUrl("file:///android_asset/error.html"); // 加载本地HTML文件
}
}
});
webView.loadUrl("http://example.com");
在上述代码示例中,当 WebView 发生错误时,我们检查错误代码,如果它是 ERROR_HOST_LOOKUP
(主机查找错误),ERROR_CONNECT
(连接错误)或 ERROR_TIMEOUT
(连接超时),则加载本地 HTML 文件 error.html
。通过这种方法,即使服务器离线,应用程序也不会崩溃,而是显示错误信息页面以提供更好的用户体验。