Android WebView监听加载失败_替换WebView加载网页失败时的页面
2015-09-25 12:48:08 By: shinyuu
在android中、使用webview打开界面失败时、会显示系统默认的一个失败页面、但是这个页面太丑、想自己写一个一面在加载失败时显示自己的页面、方法很简单、先在asset下面放一个静态的网页、然后在WebViewClient中重写onReceivedError()方法、代码如下
private class MessageWebViewClient extends WebViewClient { CustomProgressDialog mProgressDialog = null; @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // TODO Auto-generated method stub super.onReceivedError(view, errorCode, description, failingUrl); Toast.makeText(TeacherActivity.this, "服务器异常", Toast.LENGTH_SHORT).show(); mWebview.loadUrl("file:///android_asset/errorpage/error.html"); isPageError = true; } }
上面的代码虽然显示了自己的错误页面、但是在点击返回时返现返回的还是默认的失败页面、说明在加载我自己的网页之前已经加载过默认的界面、我的解决方法是做一个flag、如果是错误页面、直接finish();页面
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==KeyEvent.KEYCODE_BACK) { if(mWebview.canGoBack() && !isPageError) { mWebview.goBack();//返回上一页面 return true; } else { finish(); } } return super.onKeyDown(keyCode, event); }
当然也可以提前验证手机是否连接网络、WebView的实质就是loadUrl、所以前提是设备接入网络、那么这个如何判断呢?看代码吧:
// 网络状态 public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager .getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable(); } } return false; }
最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看
源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1qWDZlt6 密码: ycc7
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛