WebViewClient、WebChromeClient、WebSettings 常用方法介绍
WebViewClient
WebViewClient主要帮助WebView处理各种通知、请求事件
//设置页面里的超链接,是否跳转用浏览器打开,true保持当前打开,false使用系统浏览器打开
shouldOverrideKeyEvent(WebView view, KeyEvent event)
//页面开始加载
onPageStarted(WebView view, String url, Bitmap favicon)
//页面加载完成
onPageFinished(WebView view, String url)
//加载页面资源,每一个资源加载都会调用一次
onLoadResource(WebView view, String url)
//页面加载错误
onReceivedError(WebView view, int errorCode, String description, String failingUrl)
//WebView发生改变
onScaleChanged(WebView view, float oldScale, float newScale)
//拦截所有请求并替换数据
shouldInterceptRequest (WebView view, WebResourceRequest request)
//更新历史记录
doUpdateVisitedHistory(WebView view, String url, boolean isReload)
//重新发起请求
onFormResubmission(WebView view, Message dontResend, Message resend)
//接收处理https错误
onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)
//Key事件未被加载
onUnhandledKeyEvent(WebView view, KeyEvent event)
WebChromeClient
辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
//获取网页title
onReceivedTitle(WebView view, String title)
//获取网页图标
onReceivedIcon(WebView view, Bitmap icon)
//网页加载进度
onProgressChanged(WebView view, int newProgress)
//创建webview
onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg)
//关闭webview
onCloseWindow(WebView window)
//处理webview的各种弹框
onJsAlert(WebView view, String url, String message, JsResult result)
onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result)
onJsConfirm(WebView view, String url, String message, JsResult result)
将自定义的WebViewClient和WebChromeClient设置给webview
webView.setWebViewClient(mWebViewClient);
webView.setWebChromeClient(mWebChromeClient);
WebSettings
//是否支持Javascript交互,默认fasewebSettings.setJavaScriptEnabled(boolean support)
//是否支持网页中的手势缩放,默认true
setSupportZoom(boolean support)
设置WebView是否使用其内置的变焦机制,该机制集合屏幕缩放控件使用,默认是false,不使用内置变焦机制。
setBuiltInZoomControls(boolean enabled)
设置WebView使用内置缩放机制时,是否展现在屏幕缩放控件上,默认true,展现在控件上。
setDisplayZoomControls(boolean enabled)
//设置WebView是否通过手势触发播放媒体,默认true
setMediaPlaybackRequiresUserGesture(false);
//开启或禁用文件访问,默认true, 禁止仍能访问Assets文件和resources资源文件
setAllowFileAccess(boolean allow)
//设置WebView是否使用预览模式加载界面,默认fasle
//setLoadWithOverviewMode(boolean overview)
设置WebView是否加载图片资源,默认true
//setLoadsImagesAutomatically (boolean flag)
//是否保存密码,默认true,但是涉及到安全性的问题API>18不在支持webview保存密码
setSavePassword (boolean save)
//设置WebView字体最小值,默认值8,取值1到72
setMinimumFontSize(int size)
设置WebView默认值字体值,默认值16,取值1到72
setDefaultFontSize(int size)
//设置是否开启DOM存储API权限,默认false
setDomStorageEnabled(boolean flag)
设置Application缓存API是否开启,默认false
setAppCacheEnabled(boolean flag)
//设置Application缓存模式
setCacheMode(int mode)
//设置当前Application缓存文件路径
setAppCachePath(String appCachePath)
//开启定位功能,默认true
setGeolocationEnabled(boolean flag)