Most visited

Recently visited

Added in API level 1

WebViewClient

public class WebViewClient
extends Object

java.lang.Object
   ↳ android.webkit.WebViewClient


Summary

Constants

int ERROR_AUTHENTICATION

用户认证在服务器上失败

int ERROR_BAD_URL

格式错误的网址

int ERROR_CONNECT

无法连接到服务器

int ERROR_FAILED_SSL_HANDSHAKE

无法执行SSL握手

int ERROR_FILE

通用文件错误

int ERROR_FILE_NOT_FOUND

文件未找到

int ERROR_HOST_LOOKUP

服务器或代理主机名查找失败

int ERROR_IO

无法读取或写入服务器

int ERROR_PROXY_AUTHENTICATION

代理上的用户身份验证失败

int ERROR_REDIRECT_LOOP

太多的重定向

int ERROR_TIMEOUT

连接超时

int ERROR_TOO_MANY_REQUESTS

在此负载期间请求过多

int ERROR_UNKNOWN

一般错误

int ERROR_UNSUPPORTED_AUTH_SCHEME

不支持的认证方案(不是基本或摘要)

int ERROR_UNSUPPORTED_SCHEME

不支持的URI方案

Public constructors

WebViewClient()

Public methods

void doUpdateVisitedHistory(WebView view, String url, boolean isReload)

通知主机应用程序更新其访问的链接数据库。

void onFormResubmission(WebView view, Message dontResend, Message resend)

作为主机应用程序,如果浏览器应该重新发送数据,因为请求的页面是POST的结果。

void onLoadResource(WebView view, String url)

通知主机应用程序WebView将加载由给定url指定的资源。

void onPageCommitVisible(WebView view, String url)

通知主机应用程序 WebView从上一页导航 WebView内容将不再绘制。

void onPageFinished(WebView view, String url)

通知主机应用程序页面已完成加载。

void onPageStarted(WebView view, String url, Bitmap favicon)

通知主机应用程序一个页面已经开始加载。

void onReceivedClientCertRequest(WebView view, ClientCertRequest request)

通知主机应用程序处理SSL客户端证书请求。

void onReceivedError(WebView view, int errorCode, String description, String failingUrl)

此方法在API级别23中已弃用。请改为使用onReceivedError(WebView, WebResourceRequest, WebResourceError)

void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)

向主机应用程序报告Web资源加载错误。

void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm)

通知主机应用程序WebView收到HTTP认证请求。

void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse)

通知主机应用程序在加载资源时从服务器收到HTTP错误。

void onReceivedLoginRequest(WebView view, String realm, String account, String args)

通知主机应用程序已处理自动登录用户的请求。

void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)

通知主机应用程序加载资源时发生SSL错误。

void onScaleChanged(WebView view, float oldScale, float newScale)

通知主机应用程序应用于WebView的比例已更改。

void onTooManyRedirects(WebView view, Message cancelMsg, Message continueMsg)

此方法在API级别8中已弃用。此方法不再被调用。 当WebView遇到重定向循环时,它将取消加载。

void onUnhandledKeyEvent(WebView view, KeyEvent event)

通知主机应用程序未由WebView处理密钥。

WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request)

通知资源请求的主机应用程序并允许应用程序返回数据。

WebResourceResponse shouldInterceptRequest(WebView view, String url)

此方法在API级别21中已弃用。请改为使用shouldInterceptRequest(WebView, WebResourceRequest)

boolean shouldOverrideKeyEvent(WebView view, KeyEvent event)

让主机应用程序有机会同步处理关键事件。

boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)

当一个新的URL即将被加载到当前的WebView中时,主机应用程序有机会接管控制权。

boolean shouldOverrideUrlLoading(WebView view, String url)

此方法在API级别24中已弃用。请改为使用shouldOverrideUrlLoading(WebView, WebResourceRequest)

Inherited methods

From class java.lang.Object

Constants

ERROR_AUTHENTICATION

Added in API level 5
int ERROR_AUTHENTICATION

用户认证在服务器上失败

常量值:-4(0xfffffffc)

ERROR_BAD_URL

Added in API level 5
int ERROR_BAD_URL

格式错误的网址

常量值:-12(0xfffffff4)

ERROR_CONNECT

Added in API level 5
int ERROR_CONNECT

无法连接到服务器

常量值:-6(0xfffffffa)

ERROR_FAILED_SSL_HANDSHAKE

Added in API level 5
int ERROR_FAILED_SSL_HANDSHAKE

无法执行SSL握手

常量值:-11(0xfffffff5)

ERROR_FILE

Added in API level 5
int ERROR_FILE

通用文件错误

常量值:-13(0xfffffff3)

ERROR_FILE_NOT_FOUND

Added in API level 5
int ERROR_FILE_NOT_FOUND

文件未找到

常量值:-14(0xfffffff2)

ERROR_HOST_LOOKUP

Added in API level 5
int ERROR_HOST_LOOKUP

服务器或代理主机名查找失败

常量值:-2(0xfffffffe)

ERROR_IO

Added in API level 5
int ERROR_IO

无法读取或写入服务器

常量值:-7(0xfffffff9)

ERROR_PROXY_AUTHENTICATION

Added in API level 5
int ERROR_PROXY_AUTHENTICATION

代理上的用户身份验证失败

常量值:-5(0xfffffffb)

ERROR_REDIRECT_LOOP

Added in API level 5
int ERROR_REDIRECT_LOOP

太多的重定向

常量值:-9(0xfffffff7)

ERROR_TIMEOUT

Added in API level 5
int ERROR_TIMEOUT

连接超时

常量值:-8(0xfffffff8)

ERROR_TOO_MANY_REQUESTS

Added in API level 5
int ERROR_TOO_MANY_REQUESTS

在此负载期间请求过多

常量值:-15(0xfffffff1)

ERROR_UNKNOWN

Added in API level 5
int ERROR_UNKNOWN

一般错误

常量值:-1(0xffffffff)

ERROR_UNSUPPORTED_AUTH_SCHEME

Added in API level 5
int ERROR_UNSUPPORTED_AUTH_SCHEME

不支持的认证方案(不是基本或摘要)

常量值:-3(0xfffffffd)

ERROR_UNSUPPORTED_SCHEME

Added in API level 5
int ERROR_UNSUPPORTED_SCHEME

不支持的URI方案

常量值:-10(0xfffffff6)

Public constructors

WebViewClient

Added in API level 1
WebViewClient ()

Public methods

doUpdateVisitedHistory

Added in API level 1
void doUpdateVisitedHistory (WebView view, 
                String url, 
                boolean isReload)

通知主机应用程序更新其访问的链接数据库。

Parameters
view WebView: The WebView that is initiating the callback.
url String: The url being visited.
isReload boolean: True if this url is being reloaded.

onFormResubmission

Added in API level 1
void onFormResubmission (WebView view, 
                Message dontResend, 
                Message resend)

作为主机应用程序,如果浏览器应该重新发送数据,因为请求的页面是POST的结果。 默认是不重新发送数据。

Parameters
view WebView: The WebView that is initiating the callback.
dontResend Message: The message to send if the browser should not resend
resend Message: The message to send if the browser should resend data

onLoadResource

Added in API level 1
void onLoadResource (WebView view, 
                String url)

通知主机应用程序WebView将加载由给定url指定的资源。

Parameters
view WebView: The WebView that is initiating the callback.
url String: The url of the resource the WebView will load.

onPageCommitVisible

Added in API level 23
void onPageCommitVisible (WebView view, 
                String url)

通知主机应用程序 WebView从上一页导航中 WebView内容将不再绘制。

此回调可用于确定可再生WebView可见的安全点,以确保没有显示过时的内容。 它被称为在可以保证onDraw(Canvas)将不再从以前的导航中提取任何内容的最早时刻。 下一个抽奖将显示background colorWebView ,或新加载的页面的一些内容。

当HTTP响应的主体已经开始加载时,这个方法被调用,并且在DOM中被反映,并且在随后的绘制中可见。 此回调在文档加载过程的早期发生,因此您应该期望链接的资源(例如,css和图像)可能不可用。

有关视觉状态更新的更细粒度的通知,请参阅 postVisualStateCallback(long, WebView.VisualStateCallback)

请注意,适用于 postVisualStateCallback(long, WebView.VisualStateCallback)所有条件和建议也适用于此API。

此回调仅用于主框架导航。

Parameters
view WebView: The WebView for which the navigation occurred.
url String: The URL corresponding to the page navigation that triggered this callback.

onPageFinished

Added in API level 1
void onPageFinished (WebView view, 
                String url)

通知主机应用程序页面已完成加载。 这种方法仅适用于主框架。 调用onPageFinished()时,渲染图片可能尚未更新。 要获取新图片的通知,请使用onNewPicture(WebView, Picture)

Parameters
view WebView: The WebView that is initiating the callback.
url String: The url of the page.

onPageStarted

Added in API level 1
void onPageStarted (WebView view, 
                String url, 
                Bitmap favicon)

通知主机应用程序一个页面已经开始加载。 这种方法对于每个主框架负载都被调用一次,所以带有iframe或框架集的页面将为主框架调用onPageStarted一次。 这也意味着,当嵌入帧的内容发生变化时,onPageStarted不会被调用,即点击一个目标是iframe的链接,它也不会被称为片段导航(导航到#fragment_id)。

Parameters
view WebView: The WebView that is initiating the callback.
url String: The url to be loaded.
favicon Bitmap: The favicon for this page if it already exists in the database.

onReceivedClientCertRequest

Added in API level 21
void onReceivedClientCertRequest (WebView view, 
                ClientCertRequest request)

通知主机应用程序处理SSL客户端证书请求。 宿主应用程序负责根据需要显示UI并提供密钥。 有三种响应方式:proceed(),cancel()或ignore()。 如果调用proceed()或cancel()并且不再为同一个主机和端口对调用onReceivedClientCertRequest(),则Webview会将响应存储在内存中(对于应用程序的整个生命周期)。 如果调用ignore(),Webview不存储响应。 请注意,铬网络堆栈中的多个图层可能会缓存响应,因此忽略行为只是最好的情况。 此方法在UI线程上调用。 在回调期间,连接被暂停。 对于大多数使用情况,应用程序应该实现KeyChainAliasCallback接口并将其传递给choosePrivateKeyAlias(Activity, KeyChainAliasCallback, String[], Principal[], Uri, String)以启动用户选择正确别名的活动。 钥匙串活动将通过实现的接口中的回调方法提供别名。 接下来,应用程序应该创建一个异步任务来调用getPrivateKey(Context, String)来接收密钥。 客户端证书的示例实现可以在AOSP Browser看到 。默认行为是取消,不返回客户端证书。

Parameters
view WebView: The WebView that is initiating the callback
request ClientCertRequest: An instance of a ClientCertRequest

onReceivedError

Added in API level 1
void onReceivedError (WebView view, 
                int errorCode, 
                String description, 
                String failingUrl)

此方法在API级别23中已弃用。
改为使用onReceivedError(WebView, WebResourceRequest, WebResourceError)

向主机应用程序报告错误。 这些错误是不可恢复的(即主资源不可用)。 errorCode参数对应于其中一个ERROR_ *常量。

Parameters
view WebView: The WebView that is initiating the callback.
errorCode int: The error code corresponding to an ERROR_* value.
description String: A String describing the error.
failingUrl String: The url that failed to load.

onReceivedError

Added in API level 23
void onReceivedError (WebView view, 
                WebResourceRequest request, 
                WebResourceError error)

向主机应用程序报告Web资源加载错误。 这些错误通常表明无法连接到服务器。 请注意,与回调的弃用版本不同,新版本将针对任何资源(iframe,图像等)而被调用,而不仅仅是主页面。 因此,建议在此回调中执行最低限度的工作。

Parameters
view WebView: The WebView that is initiating the callback.
request WebResourceRequest: The originating request.
error WebResourceError: Information about the error occured.

onReceivedHttpAuthRequest

Added in API level 1
void onReceivedHttpAuthRequest (WebView view, 
                HttpAuthHandler handler, 
                String host, 
                String realm)

通知主机应用程序WebView收到HTTP认证请求。 主机应用程序可以使用提供的HttpAuthHandler来设置WebView对请求的响应。 默认行为是取消请求。

Parameters
view WebView: the WebView that is initiating the callback
handler HttpAuthHandler: the HttpAuthHandler used to set the WebView's response
host String: the host requiring authentication
realm String: the realm for which authentication is required

也可以看看:

onReceivedHttpError

Added in API level 23
void onReceivedHttpError (WebView view, 
                WebResourceRequest request, 
                WebResourceResponse errorResponse)

通知主机应用程序在加载资源时从服务器收到HTTP错误。 HTTP错误的状态码大于等于400.这个回调将被调用,用于任何资源(iframe,图像等),而不仅仅是主页面。 因此,建议在此回调中执行最低限度的工作。 请注意,服务器响应的内容可能不会在errorResponse参数中提供。

Parameters
view WebView: The WebView that is initiating the callback.
request WebResourceRequest: The originating request.
errorResponse WebResourceResponse: Information about the error occured.

onReceivedLoginRequest

Added in API level 12
void onReceivedLoginRequest (WebView view, 
                String realm, 
                String account, 
                String args)

通知主机应用程序已处理自动登录用户的请求。

Parameters
view WebView: The WebView requesting the login.
realm String: The account realm used to look up accounts.
account String: An optional account. If not null, the account should be checked against accounts on the device. If it is a valid account, it should be used to log in the user.
args String: Authenticator specific arguments used to log in the user.

onReceivedSslError

Added in API level 8
void onReceivedSslError (WebView view, 
                SslErrorHandler handler, 
                SslError error)

通知主机应用程序加载资源时发生SSL错误。 主机应用程序必须调用handler.cancel()或handler.proceed()。 请注意,该决定可能会保留以用于响应未来的SSL错误。 默认行为是取消加载。

Parameters
view WebView: The WebView that is initiating the callback.
handler SslErrorHandler: An SslErrorHandler object that will handle the user's response.
error SslError: The SSL error object.

onScaleChanged

Added in API level 1
void onScaleChanged (WebView view, 
                float oldScale, 
                float newScale)

通知主机应用程序应用于WebView的比例已更改。

Parameters
view WebView: The WebView that is initiating the callback.
oldScale float: The old scale factor
newScale float: The new scale factor

onTooManyRedirects

Added in API level 1
void onTooManyRedirects (WebView view, 
                Message cancelMsg, 
                Message continueMsg)

此方法在API级别8中已被弃用。
此方法不再被调用。 当WebView遇到重定向循环时,它将取消加载。

通知主机应用程序有过多的HTTP重定向。 作为主机应用程序,如果它想继续尝试加载资源。 默认行为是发送取消消息。

Parameters
view WebView: The WebView that is initiating the callback.
cancelMsg Message: The message to send if the host wants to cancel
continueMsg Message: The message to send if the host wants to continue

onUnhandledKeyEvent

Added in API level 1
void onUnhandledKeyEvent (WebView view, 
                KeyEvent event)

通知主机应用程序未由WebView处理密钥。 除系统键之外,WebView将始终使用正常流程中的键或者shouldOverrideKeyEvent返回true。 这是从密钥分派的地方异步调用的。 它使主机应用程序有机会处理未处理的关键事件。

Parameters
view WebView: The WebView that is initiating the callback.
event KeyEvent: The key event.

shouldInterceptRequest

Added in API level 21
WebResourceResponse shouldInterceptRequest (WebView view, 
                WebResourceRequest request)

通知资源请求的主机应用程序并允许应用程序返回数据。 如果返回值为空,则WebView将像往常一样继续加载资源。 否则,将使用返回响应和数据。 注意:此方法在UI线程以外的线程上调用,因此客户端在访问私人数据或视图系统时应谨慎行事。

Parameters
view WebView: The WebView that is requesting the resource.
request WebResourceRequest: Object containing the details of the request.
Returns
WebResourceResponse A WebResourceResponse containing the response information or null if the WebView should load the resource itself.

shouldInterceptRequest

Added in API level 11
WebResourceResponse shouldInterceptRequest (WebView view, 
                String url)

此方法在API级别21中已弃用。
改为使用shouldInterceptRequest(WebView, WebResourceRequest)

通知资源请求的主机应用程序并允许应用程序返回数据。 如果返回值为空,则WebView将像往常一样继续加载资源。 否则,将使用返回响应和数据。 注意:此方法在UI线程以外的线程上调用,因此客户端在访问私人数据或视图系统时应谨慎行事。

Parameters
view WebView: The WebView that is requesting the resource.
url String: The raw url of the resource.
Returns
WebResourceResponse A WebResourceResponse containing the response information or null if the WebView should load the resource itself.

shouldOverrideKeyEvent

Added in API level 1
boolean shouldOverrideKeyEvent (WebView view, 
                KeyEvent event)

让主机应用程序有机会同步处理关键事件。 例如菜单快捷键事件需要以这种方式进行过滤。 如果返回true,WebView将不会处理关键事件。 如果返回false,WebView将始终处理关键事件,因此视图链中的所有超级用户都不会看到关键事件。 默认行为返回false。

Parameters
view WebView: The WebView that is initiating the callback.
event KeyEvent: The key event.
Returns
boolean True if the host application wants to handle the key event itself, otherwise return false

shouldOverrideUrlLoading

Added in API level 24
boolean shouldOverrideUrlLoading (WebView view, 
                WebResourceRequest request)

当一个新的URL即将被加载到当前的WebView中时,主机应用程序有机会接管控制权。 如果未提供WebViewClient,则默认情况下,WebView将要求活动管理器为URL选择适当的处理程序。 如果提供了WebViewClient,则返回true表示主机应用程序处理url,而返回false表示当前的WebView处理该url。

笔记:

  • This method is not called for requests using the POST "method".
  • This method is also called for subframes with non-http schemes, thus it is strongly disadvised to unconditionally call loadUrl(String) with the request's url from inside the method and then return true, as this will make WebView to attempt loading a non-http url, and thus fail.

Parameters
view WebView: The WebView that is initiating the callback.
request WebResourceRequest: Object containing the details of the request.
Returns
boolean True if the host application wants to leave the current WebView and handle the url itself, otherwise return false.

shouldOverrideUrlLoading

Added in API level 1
boolean shouldOverrideUrlLoading (WebView view, 
                String url)

此方法在API级别24中已弃用。
改为使用shouldOverrideUrlLoading(WebView, WebResourceRequest)

当一个新的URL即将被加载到当前的WebView中时,主机应用程序有机会接管控制权。 如果未提供WebViewClient,则默认情况下,WebView将要求活动管理器为URL选择适当的处理程序。 如果提供了WebViewClient,则返回true表示主机应用程序处理url,而返回false表示当前的WebView处理该url。 这种方法不会为使用POST“方法”的请求调用。

Parameters
view WebView: The WebView that is initiating the callback.
url String: The url to be loaded.
Returns
boolean True if the host application wants to leave the current WebView and handle the url itself, otherwise return false.

Hooray!