WebView、WebViewClient and WebChormeClient 常用知识点
WebView是Android平台上一个特殊的View,可以用来显示网页
WebViewClient和WebChormeClient用来辅助WebView
- WebView职责:解析、渲染网页
- WebViewClient:辅助WebView处理各种事件、通知
- WebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
设置编码
mWebView.getSettings().setDefaultTextEncodingName("utf-8");支持js
mWebView.getSettings().setJavaScriptEnabled(true);设置本地调用对象及其接口(重要知识点跟JS交互就靠他)
mWebView.addJavascriptInterface(new Object(), "myObj");加载本地网页
mWebView.loadUrl("file:///android_asset/wb.html");加载网络地址
mWebView.loadUrl("http://www.baidu.com");加载网页格式的文本
String summary = "You scored 192 points.";
mWebView.loadData(summary, "text/html", null);设置WebViewClient
mWebView.setWebViewClient(mWvClient);设置WebChromeClient
mWebView.setWebChromeClient(mChrome);清除webview资源 当activity销毁的时候
@Override
protected void onDestroy() {
super.onDestroy();
//清除缓存
mWebView.clearCache(true);
//清除访问历史记录
mWebView.clearHistory();
//释放WebView占用的资源
mWebView.destroy();
}
点击返回按钮如果有上一页则跳转上一页,添加返回键拦截
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){ //拦截返回键
if(mWebView.canGoBack()){ //是否有上一页可返回
mWebView.goBack();//返回到上一页
return false;
}
}
return super.onKeyDown(keyCode, event);
}
加载资源事件 url:链接
public void onLoadResource(WebView view, String url)请求url开始
public void onPageStarted(WebView view, String url, Bitmap favicon)请求url结束
public void onPageFinished(WebView view, String url)请求错误信息
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) -23+
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) -23+
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) -23-打开方式(程序还是系统浏览器)
public boolean shouldOverrideUrlLoading获取网页头部icon
public void onReceivedIcon(WebView view, Bitmap icon)获取头部标题
public void onReceivedTitle(WebView view, String title)网页加载进度变化
public void onProgressChanged(WebView view, int newProgress)