android WebView(三)WebViewClient
2015-04-08 18:11
120 查看
WebView自己加载子页面
默认情况下,点击WebView所加载的页面上的超链接按钮时,是启动系统自带的浏览器去加载新的页面。如果要让WebView自己加载,需要添加如下代码:webView.setWebViewClient(new SelfWebViewClient());
SelfWebViewClient继承自WebViewClient,如下:
public class SelfWebViewClient extends WebViewClient { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); //加载结束 } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); //在此处显示加载失败页面 loadFailure.setVisibility(View.VISIBLE); } @Override public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); //加载资源 } @Override public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { super.onReceivedHttpAuthRequest(view, handler, host, realm); //webview保存密码 } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); //开始加载页面 } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //点击链接跳转,对网页中超链接按钮的响应。 view.loadUrl(url); return true } }
WebViewClient的一般生命周期如下:
如果加载成功
onPageStarted-->> onLoadResource-->>onPageFinished-->> onLoadResource
如果加载失败
onPageStarted-->>
onLoadResource-->>onReceivedError-->>onPageFinished-->>onPageFinished
WebViewClient的常见用途有三个:1、让WebView自己加载子页面;2、如果WebView加载失败显示失败页面;3、记住页面登录密码。这三个功能上面代码已经简单介绍了。
WebView从子页面返回
上面介绍了如何如何直接用WebView加载子页面,但是如何从子页面返回上一页面呢?这个需要有一个出发时间,我就用返回键来触发,代码如下:@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack(); //goBack()表示返回WebView的上一页面 return true; } else{ finish(); } return false; }
相关文章推荐
- Android中WebView方法WebViewClient和WebChromeClient的区别
- Android: HttpClient与Webview共享cookies
- Android之WebViewClient与WebChromeClient的区别
- android WebView, WebChromeClient和WebViewClient加载网页基本用法
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android中WebView,WebViewClient,WebChromeClient区别
- 关于android WebViewClient和WebChromeClient
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- android WebView 与 HttpClient Cookie
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android中WebView,WebViewClient,WebChromeClient区别
- 关于android WebViewClient的方法解释
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- android.webkit.WebView/WebViewClient/WebChromeClient
- 关于android WebViewClient 的方法解释
- android的WebView、WebViewClient、WebChromeClient的关系
- Android之WebViewClient与WebChromeClient的区别
- Android之WebViewClient与WebChromeClient的区别
- 关于android WebViewClient的方法解释
- Android WebView 与HttpClient 共用本地cookie问题