WebViewClient类与WebChromClient两个类在android开发的过程中,主要是在使用WebView这个组件的时候,可能会使用到。那么这两个类到底有什么不同之处呢?


WebViewClient 这个类主要帮助WebView处理各种通知、请求时间的,比如:


onLoadResource

onPageStart

onPageFinish

onReceiveError

onReceivedHttpAuthRequest


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


onCloseWindow(关闭WebView)

onCreateWindow()

onJsAlert(WebView上alert无效,需要定制WebChromeClient处理弹出)

onJsConfirm

onProgressChanged

onReceivedIcon

onReceivedTitle

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

通常情况下在使用WebView的时候,需要使用一下的语句:

WebView webView;

webView =(WebView) findViewById(R.id.webview);

webView.setWebChromeClient(new WebChromeClient());

webView.setWebViewClient(new WebViewClient());

webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl(url);

这样你的WebView理论上就能有大部分选哟实现的特色了,当然,有些更精彩的内容还是需要自己添加的。


WebViewClient的方法的详细说明:

public boolean shouldOverrideUrlLoading(WebView view,String url){   return true;}
//在点击请求的是连接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webView里跳转,不跳到浏览器里边

2.onReceivedSslError()

public void onReceivedSslError(WebView view,SslErrorHandler handler,android.net.http.SslError error){     handler.proceed();}
//重写此方法可以让webView处理https请求

3. shouldOverrideKeyEvent()

public boolean shouldOverrideKeyEvent(WebView view,KeyEvent event){   return super.shouldOverrideKeyEvent(view,event);}
//重写此方法才能够处理在浏览器中的按键事件

4. onLoadResource();

public void onLoadResource(WebView view, String url){    if(DEBUG){          Log.d(TAG , "onLoadResource");     }     super.onLoadResource(view, url);}
 // 在加载页面资源是会调用,每一个资源(比如图片)的加载都会调用一次

5. onPageStarted()';

public void onPageStarted(WebView view, String url, Bitmap favicon){   if(DEBUG){         Log.d(TAG,"onPageStarted");    }     if(url.endsWith(".apk")){           download(url);  //下载处理      }      super.onPageStarted(view, url, favicon);}
  //在页面开始加载时调用

6. onPageFinished()

public void onPageFinished(WebView view,String url){     if(DEBUG){          Log.i(TAG,"onPageFinished");      }      super.onPageFinished(view, url);}
在页面加载结束的时候调用




更多相关文章

  1. android拍照显示缩略图
  2. Android原生调用mui里面的js如何实现
  3. IE 和android浏览器上页面图片加载判断
  4. Android(安卓)Studio 使用 System.loadLibrary()的一些问题
  5. 学习:Android生命周期
  6. Dalvik——基本Dalvik VM调用
  7. Android中Touch事件分发过程全解析
  8. android 系统重启关机 方法 非常好的一篇文章
  9. Android(安卓)Framework下StageFright框架流程解读

随机推荐

  1. Android分辨率适配layout布局的问题
  2. Android(安卓)Context 使用时注意内存泄
  3. Android的子线程能更新UI吗?
  4. android图标的制作
  5. 4412开发板Android教程——Android平台简
  6. Android(安卓)Building System 分析
  7. NDK编译Android字符界面的可执行程序
  8. android文本布局引擎
  9. Android(安卓)中文api (81)――InputMeth
  10. 基于RTP和Android的视频传输的研究实现方