WebView设置之WebChromeClient

乐正宏深
2023-12-01

前言

好久没在CSDN写博客了,最近有时间把一些之前项目期总结的东西,传上来给大家分享,这是本人花了3天独自翻译的.希望能够帮助,同时也希望大家可以指明错误.博主会更努力,那下面紧接着是WebView的一个小翻译系列.

导航

WebView的介绍
http://blog.csdn.net/l540675759/article/details/54709676

WebView翻译的API大全
http://blog.csdn.net/l540675759/article/details/54709664

WebView设置之WebViewClient
http://blog.csdn.net/l540675759/article/details/54709687

WebView设置之WebChromeClient
http://blog.csdn.net/l540675759/article/details/54709680

WebView设置之WebSettings
http://blog.csdn.net/l540675759/article/details/54709690

WebChromeClient

简介

WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等.

onCloseWindow(关闭WebView)

onCreateWindow(

onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)

onJsPrompt

onJsConfirm

onProgressChanged

onReceivedIcon

onReceivedTitle
  

内部嵌套类

WebChromeClient.CustomViewCallback

一个回调接口使应用程序通知当前页面的自定义视图将要消失.

公共方法
onCustomViewHidden()

当应用程序的自定义视图消失的方法被调用.

WebChromeClient 的公共方法

Bitmap getDefaultVideoPoster()

当应用程序暂停操作时,视频元素是一张海报图像,获得该Image.

getVideoLoadingProgressView()

获得一个View,来作为视频全屏加载时的缓冲视图.

getVisitedHistory(ValueCallback<String[]> callback)

获得所有访问的历史项目的列表,用于链接着色.

onCloseWindow(WebView window)

通知应用程序如果有必要,需要关闭和删除在视图结构中删除给定的WebView,在这一点上,将会停止正在加载的WebView和消除了任何cross-scripting的javascript的能力

boolean onConsoleMessage(ConsoleMessage consoleMessage)

报告一个JavaScript控制台消息到主机应用程序.ChromeClient如果认为合适,那么应该覆盖该消息.

onCreateWindow(WebView view,
boolean isDialog,
boolean isUserGesture,
Message resultMsg)

请求应用程序创建一个新的窗口,如果应用程序选择接受这个请求,它应该从这个方法返回true,然后创建一个新的WebView的窗口,将其插入到视图系统,然后提供resultMsg消息与新的WebView作为参数发送出去.

如果应用程序选择不接受这个请求,他将返回false.

该方法默认情况是没实现的情况下,也就是返回false.

onGeolocationPermissionsHidePrompt()

通知应用程序请求地理定位权限,如果前一个地理定位权限取消了,任何相关的UI应该隐藏起来.在此方法中进行隐藏设置.

onGeolocationPermissionShowPrompt()

通知应用程序,web内容从发出请求使用地理定位的API,但是目前没有权限状态,指定的应用程序应该获得回调所需的权限状态.

具体有关详细信息,请参阅GeolocationPermissions.

onHideCustomView()

当前页面通知主机应用程序已经退出全屏模式.主机应用程序必须将自定义视图隐藏.即,传递给onShowCustomView的View参数,具体可以参阅WebView全屏文档.

boolean onJsAlert(WebView view,
String url,
String message,
JsResult result)

告诉客户端显示JavaScript警告的dialog,如果客户端返回true,WebView将会处理对话框,如果客户端返回false,将会跳过继续执行.

onJsBeforeUnload(WebView view,
String url,
String message,
JsResult result)

告诉客户端显示一个对话框来确认要离开当前界面,这是javaScript的onbeforeunload的方法的结果.

如果客户端返回true,WebView将处理确定对话框和调用适当的JsResult方法.如果客户端返回false,返回true值给JavaScript,然后离开当前页面.

方法的默认行为是返回false,另外设置JsResult为真的话,会离开导航,JsResult为假则将取消离开导航.

onJsConfirm(WebView view,
String url,
String message,
JsResult result
)

通知客户端要展示一个确认的对话框,如果客户端返回true,WebView将会处理这个对话框,如果返回false,那么将会给JavaScripe返回false值,默认的行为是返回false.

boolean onJsPrompt(WebView view,
String url,
String message,
String defaultValue,
JsPromptResult result)

告诉客户端要向用户显示一个提示的对话框,如果客户端返回true,那么WebView将会处理提示对话框和调用适当的JsPromptJResult方法,如果客户端返回false,会将false的值返回给JavaScript.

默认情况下将会返回false.

void  onPermissionRequest(PermissionRequest request)

通知主机应用程序Web内容需要访问本地特殊的资源对象,询问应用程序是拒绝还是允许,主机应用程序必须调用grant(String[])或者deny().

这个方法不能被复写,因为调用权限被拒绝.

void onPermissionRequestCanceled(PermissionRequest request)

通知应用程序的权限请求被取消了,任何相关的UI应该被隐藏.

onProgressChanged(WebView view,
int newProgress)

告诉应用程序当前WebView的加载当前界面的进度.

onReceivedIcon(WebView view,Bitmap icon)

通知应用程序接收当前界面新的标识.

onReceivedTitle(WebView view,String title)

通知应用程序当前界面的title改变.

onReceivedTouchIconUrl(WebView view,
String url,
boolean precomposed)

通知应用程序接收/apple-touch-icon的图片地址.

onRequestFocus(WebView view)

请求获得WebView的焦点,这可能由于另一个WebView打开一个连接,需要被展示.

void onShowCustomView(View view,
WebChromeClient.CustomViewCallback callback)

通知主机程序当前界面已进入全屏模式.主机应用程序必须显示自定义视图包含web内容-视频或者其他HTML内容再全屏模式.

详情请关注”Full screen support” documentation “在WebView的文档.

onShowFileChooser(WebView webview,Value)

通知应用程序显示文件的选择器,这是来自HTML需要输入文件的请求,需要用户通过”选择文件”按钮来操作,如果取消请求,那么将会filePathCallback.onReceiverValue(null)并且返回true.

 类似资料: