我开发了一个webview android应用程序,当用户没有连接到网络时,应用程序显示此页面"网页不可用" 我需要添加自定义页面(自定义错误图像。
请帮帮我!
答案 0 :(得分:1)
实现这一点非常简单:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new CustomWebViewClient());
webView.loadUrl("http://google.scom");
// Inserted an error in the URL to load to test the onErrorReceived.
// You could also just remove the internet connection or remove the internet permission.
}
class CustomWebViewClient extends WebViewClient {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
view.loadData("<html>OMG! SOMETHING WENT WRONG!</html>", "", "");
}
}
}
您的想法是提供WebViewClient
自定义的定制。在此类(CustomWebViewClient
)中,您将覆盖onReceivedError
方法,只要在WebView
中加载网址失败,就会调用此方法。我根本没有查看errorCode
,但您可以区分不同的错误。
然后,当加载失败时,您只需将静态HTML页面加载到Webview
中。我不建议从互联网上加载另一个URL,因为这可能会以无限循环结束,因为这种方法会被反复调用,而互联网连接是不可用的。