一、Android之WebViewClient与WebChromeClient的区别ANDROID应用开发的时候可能会用到WEBVIEW这个组件,使用过程中可能会接触到WEBVIEWCLIENT与WEBCHROMECLIENT,那么这两个类到底有什么不同呢?WebViewClient主要帮助WebView处理各种通知、请求事件的,比如:onLoadResourceonPageStartonPageFinishonReceiveErroronReceivedHttpAuthRequestWebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等比如onCloseWindow(关闭WebView)onCreateWindow()onJsAlert (WebView上alert无效,需要定制WebChromeClient处理弹出)onJsPromptonJsConfirmonProgressChangedonReceivedIcononReceivedTitle看上去他们有很多不同,实际使用的话,如果你的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);这样你的WebView理论上就能有大部分需要实现的特色了当然,有些更精彩的内容还是需要你自己添加的二、WebViewClient的方法说明1public boolean shouldOverrideUrlLoading(WebView view, String url) {        view.loadUrl(url);       return true;  }   在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。2public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error) {handler.proceed();}重写此方法可以让webview处理https请求。3public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {            return super.shouldOverrideKeyEvent(view, event);        }    }重写此方法才能够处理在浏览器中的按键事件。4public void onLoadResource(WebView view, String url) {            // TODO Auto-generated method stub            if (DEBUG) {                Log.d(TAG, " onLoadResource ");            }            super.onLoadResource(view, url);        }在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。5public void onPageStarted(WebView view, String url, Bitmap favicon) {            // TODO Auto-generated method stub            if (DEBUG) {                Log.d(TAG, " onPageStarted ");            }           if (url.endsWith(".apk")) {                    download(url);//下载处理             }            super.onPageStarted(view, url, favicon);        }在页面加载开始时调用。6public void onPageFinished(WebView view, String url) {            // TODO Auto-generated method stub            if (DEBUG) {                Log.d(TAG, " onPageFinished ");            }            super.onPageFinished(view, url);        }在页面加载结束时调用。

 

更多相关文章

  1. 安全新手入坑——HTML标签
  2. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  3. Android网络编程
  4. android 加载图片并在上面画图
  5. android之List的空指针问题_List的初始化
  6. Android(安卓)WebView 禁止输入
  7. Android退出应用最优雅的方式
  8. Android(安卓)经验交流分享报告笔记
  9. android虚席总结(16.08.26)Activity的生命周期

随机推荐

  1. 让class只有一个实例的例子
  2. android一行显示多个多选框
  3. android 在Google地图上添加标记
  4. Android中ImageButton的运用详解
  5. 【转】Android内存泄漏简介
  6. .Net程序员玩转Android开发---(15)ListVi
  7. 如何解决Android(安卓)5.0中出现的警告:Se
  8. Android(安卓)ListView拖动时,背景颜色会
  9. [Android] Volley源码分析(一)体系结构
  10. Android手机隐藏命令大全