`
chriszeng87
  • 浏览: 738447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于android WebViewClient和WebChromeClient

阅读更多

一、Android之WebViewClient与WebChromeClient的区别

 

ANDROID应用开发的时候可能会用到WEBVIEW这个组件,使用过程中可能会接触到WEBVIEWCLIENT与WEBCHROMECLIENT,那么这两个类到底有什么不同呢?
WebViewClient主要帮助WebView处理各种通知、请求事件的,比如:

 

 

onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest
WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等比如

 

 

onCloseWindow(关闭WebView)
onCreateWindow()
onJsAlert (WebView上alert无效,需要定制WebChromeClient处理弹出)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle
看上去他们有很多不同,实际使用的话,如果你的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的方法说明
 
1、public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url);
       return true;
  }
   在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。
2、public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error) {
handler.proceed();
}
重写此方法可以让webview处理https请求。
3、public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
            return super.shouldOverrideKeyEvent(view, event);
        }
    }
重写此方法才能够处理在浏览器中的按键事件。
4、 public void onLoadResource(WebView view, String url) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onLoadResource ");
            }
            super.onLoadResource(view, url);
        }
在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
5、 public 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);
        }
在页面加载开始时调用。
6、public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            if (DEBUG) {
                Log.d(TAG, " onPageFinished ");
            }
            super.onPageFinished(view, url);
        }
在页面加载结束时调用。
 
 
分享到:
评论

相关推荐

    android WebViewClient与WebChromeClient用法

    总结来说,WebViewClient和WebChromeClient在Android WebView的使用中扮演着不可或缺的角色。理解它们各自的职责和用法,有助于我们更好地控制网页的加载过程,实现与网页内容的交互,从而提升应用的整体质量。

    WebViewClient与WebChromeClient的区别

    为了更好地控制WebView的行为以及与之交互,Android提供了两个关键的类:`WebViewClient`和`WebChromeClient`。这两个类虽然都是用于辅助WebView的工作,但它们各自的功能和应用场景有所不同。 #### WebViewClient ...

    Android和H5互调

    1. WebViewClient与WebChromeClient:为了监听H5页面的加载事件,我们可以自定义WebViewClient和WebChromeClient。它们分别处理网页加载开始、完成、错误等事件,还可以实现弹窗、进度条等功能。 2. postMessage与...

    Android中WebChromeClient和WebViewClient的区别浅析

    1、WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说包括:onLoadResource 、onPageStart 、onPageFinish 、onReceiveError 、onReceivedHttpAuthRequest 2、WebChromeClient是辅助WebView处理...

    安卓Android源码——WebViewJS.zip

    - 示例应用源码中,`Android WebViewJS应用源码`可能包含了一个简单的Android项目,展示了如何在Activity中创建WebView,配置WebSettings,设置WebViewClient和WebChromeClient,以及实现JavaScript与Java的交互。...

    android网页浏览器demo源代码

    4. **WebViewClient和WebChromeClient**:为了实现更复杂的交互,比如拦截链接、处理弹出窗口或进度条显示,通常会自定义WebViewClient和WebChromeClient。这两个类提供了许多回调方法,可以覆盖以实现特定行为。 5...

    Android应用源码之38.WebView控件学习.zip

    这份源码提供了关于WebView的详细学习资料,非常适合Android开发者进行参考和学习。 首先,WebView是Android SDK中的一个视图类,继承自`android.webkit.WebView`。它的主要功能是加载和显示HTML、XML或其他Web内容...

    用android框架加载网页

    创建Webview的基本步骤包括初始化Webview、设置WebViewClient和WebChromeClient、加载网页URL。例如: ```java WebView webView = new WebView(this); setContentView(webView); webView.setWebViewClient(new ...

    Android Zirco浏览器源码.rar

    2. 页面加载逻辑:深入理解WebViewClient和WebChromeClient的回调函数,如onPageStarted、onPageFinished、onReceivedError等,以及如何处理页面的加载状态和错误。 3. JavaScript交互:分析如何通过...

    Android-H5和Android通信框架让H5和Android相互调用更加简单

    可以通过设置WebViewClient和WebChromeClient来监听页面加载状态和处理JavaScript对话框。 2. **设置JavaScript接口**:使用`addJavascriptInterface`方法,将一个Java对象暴露给JavaScript。这个对象上的方法会被...

    Android Zirco浏览器源码.zip

    1. **WebView的配置与使用**:研究如何初始化WebView,设置WebViewClient和WebChromeClient,以及如何加载URL和执行JavaScript。 2. **网络请求与响应处理**:分析网络请求的发起、数据解析和错误处理流程,了解如何...

    android与js交互的三种方式

    而对于页面加载的监控,`WebViewClient`和`WebChromeClient`则必不可少。 总结来说,Android与JavaScript的交互涉及多方面的技术和策略,开发者需要根据实际需求选择合适的方法,并注意安全性。理解这些交互方式的...

    Androind 浏览器(WebView)例子

    WebView是Android SDK中的一个类,它继承自View,并且实现了WebViewClient和WebChromeClient接口,使得我们可以对网页加载过程进行控制和定制。 1. **WebView基本使用** - 初始化:在XML布局文件中添加WebView元素...

    Android代码-Andorid-LiteHybrid-WebView

    1. 封装原生 webview,使用 WebViewClient 与 WebChromeClient 2. H5 调用 Native 采用 js prompt 方式 3. Native 调用 H5 采用 loadurl API 使用说明: errorview 和 loadingview 可以自定义 对 WebView 设置...

    Android 和 js调用桥

    为了使两者之间能进行通信,Android提供了WebViewClient和WebChromeClient两个类,它们提供了接口供开发者处理加载页面的过程以及与JavaScript交互。 1. **WebViewClient**:主要处理页面的加载事件,如...

    Android WebView实例

    为了实现更高级的功能,如拦截加载请求或处理JavaScript与Java之间的交互,我们需要设置WebViewClient和WebChromeClient: ```java webView.setWebViewClient(new WebViewClient() { @Override public void ...

    android webView

    WebView是Android SDK中的一个类,它继承自View,并且实现了WebViewClient和WebChromeClient接口。它的主要功能是加载HTML、CSS、JavaScript等网络资源,为用户提供一种在原生应用内嵌入网页的解决方案。以下是一些...

    android和js交互demo

    总结来说,Android与JavaScript的交互是通过WebView组件实现的,结合WebViewClient和WebChromeClient可以定制网页加载和交互行为。JavaScriptInterface和evaluateJavascript()是主要的交互手段,分别适用于需要持久...

    android webview视频全屏等功能demo

    - "Webviewpro"可能是项目的主模块,包含了Android工程的所有组成部分,如MainActivity(包含WebView的布局)、WebView配置、JavaScriptInterface类、以及可能的自定义WebChromeClient和WebViewClient。 8. **调试...

Global site tag (gtag.js) - Google Analytics