添加自定义android webview错误页面

一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述添加自定义android webview错误页面相关的知识,希望能为你提供帮助。
在我的应用程序中,我想要一个错误活动“NOT A ERROR html PAGE”。其中包含刷新按钮和布局。我搜索它但我发现只是资产文件夹中的自定义html错误页面。
我创建了一些下面的代码,我想要的是,当发生网络错误时,它将打开这样的活动,用户可以使用按钮轻松刷新页面。

我想制作像这样的错误页面..
添加自定义android webview错误页面

文章图片

这不是一个HTML错误页面。这包含带刷新按钮的布局,
public WebView mWebview ; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map); mWebview= new WebView(this); mWebview.getSettings().setjavascriptEnabled(true); // enable javascriptmWebview.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {// Do Something Here,I don't know what to do.. :(} }); mWebview.loadUrl("google.com"); setContentView(mWebview); }@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.option, menu); return true; }@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) {case R.id.refresh: startActivity(new Intent(this, CeS1.class)); finish(); return true; case R.id.about: startActivity(new Intent(this, Credits_activity.class)); finish(); return true; case R.id.gotomain: startActivity(new Intent(this, MenuActivity.class)); return true; default: return super.onOptionsItemSelected(item); } }

答案在你的代码中调用它
webview.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { //place you error code here } });

另一答案您可以创建包含2个图层的布局。一个是WebView,另一个是你的错误布局。当你的WebView遇到网络错误时,你可以隐藏你的WebView并显示带有重试按钮的errorView。
另一答案【添加自定义android webview错误页面】首先,将HTML错误页面放在资产文件夹中,然后根据以下代码覆盖onReceivedError,
private class MyWebViewClient extends WebViewClient { . . .// api< 23 @Override public void onReceivedError(WebView view, int errorCode, String description, String url) { view.stopLoading(); webview.loadUrl("file:///android_asset/error/error.html"); }// api> 23 @Override @TargetApi(android.os.Build.VERSION_CODES.M) public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { view.stopLoading(); webview.loadUrl("file:///android_asset/error/error.html"); //super.onReceivedError(view, request, error); } . . .}


    推荐阅读