博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android WebViewClient和WebChromeClient
阅读量:6234 次
发布时间:2019-06-22

本文共 2271 字,大约阅读时间需要 7 分钟。

一、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的方法说明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);        }在页面加载结束时调用。

 

转载地址:http://ggqna.baihongyu.com/

你可能感兴趣的文章
电信无限流量卡
查看>>
Java反射机制的适用场景及其利与弊 ***
查看>>
wine 运行Call of Duty Modern Warfare 2以及starcraft2方法
查看>>
找出表的记录数
查看>>
实现WCF和Unity 的集成
查看>>
Java 和 C#在重写上的区别
查看>>
基础才是重中之重——对var的误会,对不起,我愿望(冤枉)你了
查看>>
集合类型的装配
查看>>
【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
查看>>
【读书笔记】测试驱动开发(中文版)
查看>>
ExtAspNet v3.0.1
查看>>
javascript 构造函数和方法
查看>>
使用VB.net Express 2010开发AutoCAD.net插件调试时出现很多错误的解决办法
查看>>
.net服务使用笔记(原创)
查看>>
使用Tomcat配置域名
查看>>
[转]Oracle/Altibase数据库中Sequence的用法
查看>>
URAL 1009 K-based Numbers
查看>>
android 知识点汇总
查看>>
android之Notification通知
查看>>
C# 生成等比缩略图的类
查看>>