`
chriszeng87
  • 浏览: 722338 次
  • 性别: 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中WebChromeClient和WebViewClient的区别浅析

    主要介绍了Android中WebChromeClient和WebViewClient的区别浅析,需要的朋友可以参考下

    android WebView

    一个Android Webview使用例子,介绍WebSetting 、WebViewClient、WebChromeClient

    Android WebView实例

    WebView的实现,主要使用到了WebViewClient和WebChromeClient两个类。

    Android代码-Andorid-LiteHybrid-WebView

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

    webview 上传照片

    功能是android webview 嵌入HTML5的页面,页面中有一个标签,iOS直接就支持,但android中不支持,网上的帖子说是因为android屏蔽了文件上传功能还是怎么的,没看明白,但是重写WebViewClient,WebChromeClient这两个...

    Android中WebView的具体实现

    Android中使用WebView, WebChromeClient和WebViewClient加载网页的具体实现过程。

    Android JS通信示例源码

    通过 ​​WebViewClient​​​ 的​​shouldOverrideUrlLoading ()​​方法回调拦截 url,不存在1的漏洞,但JS获取Android方法的返回值复杂 通过 ​​WebChromeClient​​​ 的​​onJsAlert()​​​、​​...

    android在线查看pdf文档

    pdfShowWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // 返回值是true的时候控制去WebView打开,为false调用系统浏览器...

    Android_WebView实例详解

    WebViewClient 常用方法: * doUpdateVisitedHistory:更新历史记录 * onFormResubmission:应用程序重新请求网页数据 * onLoadResource:加载指定地址提供的资源 * onPageFinished:网页加载完毕 * onPageStarted...

    Android4.4 WebView使用实例,实现后退前进刷新错误处理等功能

    Android 4.4 WebView使用实例,实现后退、前进、刷新、错误处理等功能。完成项目,可直接eclipse运行。有WebViewClient常用方法注释,WebChromeClient常用方法注释。

    WebViewInjector

    一个 Android WebViewClient ,它允许您将自己的 JavaScript 注入客户端的WebViews 。 开始将您拥有的任何脚本放在assets/ <dir> / <filename> 例如 assets/scripts/my_script.js 有一个启用了 JavaScript 的 ...

    TestJsInteraction:android 原生webview与js交互方式说明

    android 原生webview与js交互 ...通过 WebViewClient 的shouldOverrideUrlLoading ()方法回调拦截 url 通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调拦截JS对话框alert

    shareSDK分享

    1、参考”安卓快速集成文档“章节的说明,导入ShareSDK for Android的jar库和图片、文字资源。 2、复制github上的jsdemo项目中”cn.sharesdk.js”包中的源代码复制到你的项目中。QQ截图20150304142013 3、在您...

Global site tag (gtag.js) - Google Analytics