WebChromeClient常用方法详解

公共构造器(Public Constructors)

public WebChromeClient ()

添加自 API level 1

公共方法(Public Methods)


getDefaultVideoPoster

public Bitmap getDefaultVideoPoster ()

添加自 API level 7

Html中,视频(video)控件在没有播放的时候将给用户展示一张“海报”图片(预览图)。其预览图是由Html中video标签的poster属性来指定的。如果开发者没有设置poster属性, 则可以通过这个方法来设置默认的预览图。

返回值
Bitmap设置预览图的默认图片,或者为空。

getVideoLoadingProgressView

public View getVideoLoadingProgressView ()

添加自 API level 7

播放视频时,在第一帧呈现之前,需要花一定的时间来进行数据缓冲。ChromeClient可以使用这个函数来提供一个在数据缓冲时显示的视图。 例如,ChromeClient可以在缓冲时显示一个转轮动画。

返回值

参数
View显示一个视频加载中的视图。

getVisitedHistory

public void getVisitedHistory (ValueCallback<String[]> callback)

添加自 API level 7

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


onCloseWindow

public void onCloseWindow (WebView window)

添加自 API level 1

通知主机主机应用WebView关闭了,并在需要的时候从view系统中移除它。此时,WebCore已经停止窗口中的所有加载进度,并在javascript中移除了所有cross-scripting的功能。

参数
window需要关闭的webview。

onConsoleMessage

public void onConsoleMessage (String message, int lineNumber, String sourceID)

添加自 API level 7

该方法在 API level 8 被弃用
使用 onConsoleMessage(ConsoleMessage) 来替代。

将JavaScript的调试信息提交给主机应用。ChromeClient覆写此方法来展示调试过程中的日志。

参数
message报告的错误消息。
lineNumber错误的行号。
sourceID导致错误的源文件的名称。

public boolean onConsoleMessage (ConsoleMessage consoleMessage)

添加自 API level 8

将JavaScript的调试信息提交给主机应用。ChromeClient覆写此方法来展示调试过程中的日志。

参数
consoleMessage包含详细调试信息
返回值
true如果消息是由客户端处理。

onCreateWindow

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

添加自 API level 1

请求主机应用创建一个新窗口。如果主机应用选择响应这个请求,则该方法返回true,并创建一个新的WebView,将其插入到视图系统中,并将其提供的resultMsg作为参数提供给新的WebView。 如果主机应用选择不响应这个请求时,则该方法返回false。 默认情况下,该方法不做任何处理并返回false。

参数
view请求新窗口的WebView。
isDialog如果是true,代表这个新窗口只是个对话框,如果是false,则是一个整体的大小的窗口。
isUserGesture如果是true,代表这个请求是用户触发的,例如点击一个页面上的一个连接。
resultMsg当一个新的WebView被创建时这个只被传递给他,resultMsg.obj是一个WebViewTransport的对象,它被用来传送给新创建的WebView,使用方法:WebView.WebViewTransport.setWebView(WebView)

返回值

这个方法如果返回true,代表这个主机应用会创建一个新的窗口,否则应该返回fasle。如果你返回了false,但是依然发送resulMsg会导致一个未知的结果。


onExceededDatabaseQuota

public void onExceededDatabaseQuota (String url, String databaseIdentifier, long quota, long estimatedDatabaseSize, long totalQuota, WebStorage.QuotaUpdater quotaUpdater)

添加自 API level 5

该方法在 API level 19 被弃用
该方法将不再被调用; WebView现在使用HTML5 / JavaScript Quota Management API.

通知应用程序webview内核web sql 数据库超出配额,请求是否扩大数据库磁盘配额。默认行为是不会增加数据库配额。

参数
url触发这个数据库配额的url地址
databaseIdentifier指示出现数据库超过配额的标识。
quota原始数据库配额的大小,字节单位bytes。
estimatedDatabaseSize到达底线的数据大小,字节单位bytes。
totalQuota总的数据库配额大小,字节单位bytes。
quotaUpdater更新数据库配额的对象,可以使用 quotaUpdater.updateQuota(newQuota);配置新的数据库配额大小。

onGeolocationPermissionsHidePrompt

public void onGeolocationPermissionsHidePrompt ()

添加自 API level 5

当前一个调用onGeolocationPermissionsShowPrompt() 取消时,通知主机应用请求地理定位权限。隐藏相关的UI。


onGeolocationPermissionsShowPrompt

public void onGeolocationPermissionsShowPrompt (String origin, GeolocationPermissions.Callback callback)

添加自 API level 5

当前页面请求是否允许进行定位。

参数
origin权限设置的源地址。
callbackGeolocationPermissions的回调。

GeolocationPermissions.Callback

public void invoke(String origin, boolean allow, boolean retain);
参数
origin权限设置的源地址。
allow是否允许定位。
retain当前的选择是否让内核记住。

onHideCustomView

public void onHideCustomView ()

添加自 API level 7

退出视频通知。


onJsAlert

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

添加自 API level 1

通知应用程序显示javascript alert对话框,如果应用程序返回true内核认为应用程序处理这个消息,返回false,内核自己处理。

参数
viewWebView的实例。
url当前请求弹出javascript 对话框 webview 加载的url地址。
message弹出的内容信息。
result用来响应用户的处理。
返回值参数
boolean客户端是否处理alert对话框。

onJsBeforeUnload

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

添加自 API level 1

通知应用程序显示一个对话框,让用户选择是否离开当前页面,这个回调是javascript中的onbeforeunload事件,如果客户端返回true,内核会认为客户端提供对话框。默认行为是return false。

参数
viewWebView的实例。
url当前请求弹出javascript 对话框 webview 加载的url地址。
message弹出的内容信息。
result用来响应用户的处理。
返回值
boolean客户端是否处理alert对话框。

onJsConfirm

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

添加自 API level 1

通知应用程序显示javascript Confirm对话框,如果应用程序返回true内核认为应用程序处理这个消息,返回false,内核自己处理。

参数
viewWebView的实例。
url当前请求弹出javascript 对话框 webview 加载的url地址
message弹出的内容信息。
result用来发送用户的响应给JavaScrip的JsResult
返回值
boolean客户端是否处理提示对话框。

onJsPrompt

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

添加自 API level 1

通知应用程序显示一个prompt对话框。如果应用程序返回true内核认为应用程序处理这个消息,返回false,内核自己处理。

参数
viewWebView的实例。
url当前请求弹出javascript 对话框 webview 加载的url地址。
message弹出的内容信息。
defaultValueprompt dialog默认显示的信息。
result用来发送用户的响应给JavaScrip的jspromptresult。
返回值
boolean客户端是否处理提示对话框。

onJsTimeout

public boolean onJsTimeout ()

添加自 API level 7

该方法在 API level 17 被弃用
这种方法将不再被支持调用

告诉客户端JavaScript执行发生超时。让客户端决定是否中断执行。如果客户端返回true,JavaScript执行将会中断。如果客户端返回false,将继续执行。注意:继续执行的话,超时计数器将会被重置,回调将继续出现在下次JavaScript没有完成的检查点。

返回值
booleanJavaScript执行是否应该被打断。

onProgressChanged

public void onProgressChanged (WebView view, int newProgress)

添加自 API level 1

通知应用网页的加载进度。

参数
viewWebView的实例。
newProgress当前页面载入进度,为代表 一个0到100之间的整数。

onReachedMaxAppCacheSize

public void onReachedMaxAppCacheSize (long requiredStorage, long quota, WebStorage.QuotaUpdater quotaUpdater)

添加自 API level 7

该方法在 API level 19 被弃用
该方法将不再被调用; WebView现在使用HTML5 / JavaScript Quota Management API.

通知应用程序内核已经到达最大的appcache。appcache是HTML5针对offline的一个数据处理标准。

参数
requiredStorage通过应用程序缓存操作触发通知所需的存储量,以字节为单位。
quota当前的最大应用程序缓存大小,以字节为单位。
quotaUpdater一个通知WebView使用新配额的WebStorage.QuotaUpdater实例。

onReceivedIcon

public void onReceivedIcon (WebView view, Bitmap icon)

添加自 API level 1

当前页面有个新的图标时候,会回调这个函数。

参数
viewWebView的实例。
icon当前页面的新图标。

onReceivedTitle

public void onReceivedTitle (WebView view, String title)

添加自 API level 1

当document 的title变化时,会通知应用程序。

参数
viewWebView的实例。
titledocument最新的字符串标题。

onReceivedTouchIconUrl

public void onReceivedTouchIconUrl (WebView view, String url, boolean precomposed)

添加自 API level 7

通知应用程序 apple-touch-icon的 url 。

参数
view已初始化WebView的回调。
urlapple-touch-icon 的服务端地址。
precomposed如果precomposed 是true,则touch-icon是预先创建的。

onRequestFocus

public void onRequestFocus (WebView view)

添加自 API level 1

webview请求得到焦点,发生这个主要是当前webview不是前台状态,是后台webview。

参数
view需要获取焦点的webview。

onShowCustomView

public void onShowCustomView (View view, int requestedOrientation, WebChromeClient.CustomViewCallback callback)

添加自 API level 14

该方法在 API level 18 被弃用
这种方法支持过时的插件机制, 以后不会被调用

通知主机应用webview需要显示一个特定方向的custom view。

参数
view即将要显示的view。
requestedOrientation用于Activityinfo.Screenorientation的方向常量。
callback当view 需要dismiss 则使用这个对象进行回调通知。
public void onShowCustomView (View view, WebChromeClient.CustomViewCallback callback)

添加自 API level 7

通知主机应用webview需要显示一个custom view,主要是用在视频全屏 HTML5 Video support。

参数
view即将要显示的view。
callback当view 需要dismiss 则使用这个对象进行回调通知。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值