WebViewClient与WebChromeClient 区别

android应用开发的时候可能会用到webview这个组件,使用过程中可能会接触到WebViewClient与WebChromeClient,那么这两个类到底有什么不同呢?

WebViewClient主要帮助WebView处理各种通知、请求事件的,比如:

onLoadResource,onPageStart,onPageFinish,onReceiveError,onReceivedHttpAuthRequest 等。

webview1.setWebViewClient(new WebViewClient() {
	public void onReceivedError(WebView view, int errorCode, String description,
		String failingUrl){
		//Handle the error
		Toast.makeText(getApplicationContext(), "网络连接失败 ,请连接网络。", Toast.LENGTH_SHORT).show();
							};
						}
		});
	webview1.getSettings().setDefaultTextEncodingName("UTF-8");
	webview1.loadUrl("");

WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等,比如:

onCloseWindow(关闭WebView),onCreateWindow(),onJsAlert (WebView上alert无效,需要定制WebChromeClient处理弹出),onJsPrompt,onJsConfirm,onProgressChanged,onReceivedIcon,onReceivedTitle 等等。

//比如可以添加进度条,使得界面更友好
webview1.setWebChromeClient(new WebChromeClient() {
   public void onProgressChanged(WebView view, int progress) {
        setProgress(progress * 100); if(progress == 100){
        imageView1.setVisibility(View.GONE);
        tv1.setVisibility(View.GONE);
        pb1.setVisibility(View.GONE); fy1.setVisibility(View.GONE);
														}
												}
 }
);

看上去他们有很多不同,实际使用的话,如果你的WebView只是用来处理一些html的页面内容,只用WebViewClient就行了,如果需要更丰富的处理效果,比如JS、进度条等,就要用到WebChromeClient。

更多的时候,你可以这样:

WebView webView;
webView= (WebView) findViewById(R.id.webview);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);

当然,有些更精彩的内容还是需要你自己添加的

时间: 2024-10-11 03:28:03

WebViewClient与WebChromeClient 区别的相关文章

Android之WebViewClient与WebChromeClient的区别

Android之WebViewClient与WebChromeClient的区别 2012-05-05      0个评论       收藏    我要投稿 ANDROID应用开发的时候可能会用到WEBVIEW这个组件,使用过程中可能会接触到WEBVIEWCLIENT与WEBCHROMECLIENT,那么这两个类到底有什么不同呢?WebViewClient主要帮助WebView处理各种通知.请求事件的,比如: onLoadResourceonPageStartonPageFinishonRece

WebViewClient与WebChromeClient的区别

Android应用开发的时候可能会用到WebView这个组件,使用过程中可能会接触到WebViewClient与WebChromeClient,那么这两个类到底有什么不同呢? WebViewClient主要帮助WebView处理各种通知.请求事件的,比如: onLoadResource onPageStart onPageFinish onReceiveError onReceivedHttpAuthRequest WebChromeClient主要辅助WebView处理Javascript的对

简谈WebViewClient与WebChromeClient

简介:WebViewClient被用来传递单纯的加载一个链接时所发生的事件,比如开始加载,结束加载等,它代表这个链接加载时的最普通的和最笼统的事件,WebChromeClient更多的是传递JS对话框,上传文件,网页的标题改变等网页内元素的事件.  一,WebViewClient API列表:   ?void doUpdateVisitedHistory(WebView view, String url, boolean isReload) 知主机应用程序来更新其访问过的链接数据库. void

Android之WebView的使用样例——WebSetting、WebViewClient、WebChromeClient

点击查看原文 代码直接下载http://download.csdn.net/detail/metis100/8514837 第一步,xml Manifest中要设置网络权限,否则会出先 webpage not available <uses-permission android:name="android.permission.INTERNET" /> 设置布局R.layout.activity_main.这里加了个自己定义进度条 <RelativeLayout xm

Android之WebView的使用例子——WebSetting、WebViewClient、WebChromeClient

代码直接下载http://download.csdn.net/detail/metis100/8514837 第一步,xml Manifest中要设置网络权限,否则会出先 webpage not available <uses-permission android:name="android.permission.INTERNET" /> 设置布局R.layout.activity_main,这里加了个自定义进度条 <RelativeLayout xmlns:andr

WebViewClient 与 WebChromeClient

WebViewClient主要用来处理请求事件和在合适的时候回调进行一些逻辑处理,常用的shouldOverrideUrlLoading就是该类的一个方法,比如: onLoadResource onPageStart onPageFinish onReceiveError onReceivedHttpAuthRequest WebChromeClient主要辅助WebView处理Javascript的对话框.网站图标.网站标题.加载进度等,比如: onCloseWindow(关闭WebView)

WebView使用详解(三)——WebChromeClient与LoadData补充

前言: 我不会忘了我 忘了我曾说过一定会得到的梦想 --<老大>小柯 相关文章 1.<WebView使用详解(一)--Native与JS相互调用(附JadX反编译)> 2.<WebView使用详解(二)--WebViewClient与常用事件监听> 一.WebChromeClient 1.概述 (1). 与WebViewClient的区别 很多同学一看到这里有Chrome,立马就会想到google 的Chrome浏览器:这里并不是指Chrome浏览器的意思,而是泛指浏览

WebChromeClient 简介 API 案例

代码位置:https://github.com/baiqiantao/WebViewTest.git 设计思想理解 在WebView的设计中,不是什么事都要WebView类干的,有相当多的杂事是分给其他类做的,这样WebView专心干好自己的解析.渲染工作就行了.比如我们最熟知的,所有针对WebView的设置都封装到了WebSettings里.我们知道,在使用WebView加载资源过程中,可能会有大量各种类型事件的回调,为了方便开发组处理这些回调,针对不同的事件回调,google将这些回调进行了

javaSE、javaEE、Android知识点总结

上学时候的一些学习总结,如有错误请大家指出,欢迎指出,共同学习. 1. 什么是WebView? WebView是一个使用WebKit引擎的浏览器组件,用来加载网页. 2. WebView中加载网页的两种方式? loadUrl(url) 通过url地址加载互联网或本地网页 如:loadUrl("http://www.baidu.com"); loadUrl("file:///android_asset/html/index.html"); loadData(data,