Android APIs
public class

WebViewClient

extends Object
java.lang.Object
   ↳ android.webkit.WebViewClient

Summary

Constants
int ERROR_AUTHENTICATION User authentication failed on server
int ERROR_BAD_URL Malformed URL
int ERROR_CONNECT Failed to connect to the server
int ERROR_FAILED_SSL_HANDSHAKE Failed to perform SSL handshake
int ERROR_FILE Generic file error
int ERROR_FILE_NOT_FOUND File not found
int ERROR_HOST_LOOKUP Server or proxy hostname lookup failed
int ERROR_IO Failed to read or write to the server
int ERROR_PROXY_AUTHENTICATION User authentication failed on proxy
int ERROR_REDIRECT_LOOP Too many redirects
int ERROR_TIMEOUT Connection timed out
int ERROR_TOO_MANY_REQUESTS Too many requests during this load
int ERROR_UNKNOWN Generic error
int ERROR_UNSUPPORTED_AUTH_SCHEME Unsupported authentication scheme (not basic or digest)
int ERROR_UNSUPPORTED_SCHEME Unsupported URI scheme
Public Constructors
WebViewClient()
Public Methods
void doUpdateVisitedHistory(WebView view, String url, boolean isReload)
Notify the host application to update its visited links database.
void onFormResubmission(WebView view, Message dontResend, Message resend)
As the host application if the browser should resend data as the requested page was a result of a POST.
void onLoadResource(WebView view, String url)
Notify the host application that the WebView will load the resource specified by the given url.
void onPageFinished(WebView view, String url)
Notify the host application that a page has finished loading.
void onPageStarted(WebView view, String url, Bitmap favicon)
Notify the host application that a page has started loading.
void onReceivedClientCertRequest(WebView view, ClientCertRequest request)
Notify the host application to handle a SSL client certificate request.
void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
Report an error to the host application.
void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm)
Notifies the host application that the WebView received an HTTP authentication request.
void onReceivedLoginRequest(WebView view, String realm, String account, String args)
Notify the host application that a request to automatically log in the user has been processed.
void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)
Notify the host application that an SSL error occurred while loading a resource.
void onScaleChanged(WebView view, float oldScale, float newScale)
Notify the host application that the scale applied to the WebView has changed.
void onTooManyRedirects(WebView view, Message cancelMsg, Message continueMsg)
This method was deprecated in API level 8. This method is no longer called. When the WebView encounters a redirect loop, it will cancel the load.
void onUnhandledInputEvent(WebView view, InputEvent event)
Notify the host application that a input event was not handled by the WebView.
void onUnhandledKeyEvent(WebView view, KeyEvent event)
This method is deprecated. This method is subsumed by the more generic onUnhandledInputEvent.
WebResourceResponse shouldInterceptRequest(WebView view, String url)
Notify the host application of a resource request and allow the application to return the data.
boolean shouldOverrideKeyEvent(WebView view, KeyEvent event)
Give the host application a chance to handle the key event synchronously.
boolean shouldOverrideUrlLoading(WebView view, String url)
Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int ERROR_AUTHENTICATION

Added in API level 5

User authentication failed on server

Constant Value: -4 (0xfffffffc)

public static final int ERROR_BAD_URL

Added in API level 5

Malformed URL

Constant Value: -12 (0xfffffff4)

public static final int ERROR_CONNECT

Added in API level 5

Failed to connect to the server

Constant Value: -6 (0xfffffffa)

public static final int ERROR_FAILED_SSL_HANDSHAKE

Added in API level 5

Failed to perform SSL handshake

Constant Value: -11 (0xfffffff5)

public static final int ERROR_FILE

Added in API level 5

Generic file error

Constant Value: -13 (0xfffffff3)

public static final int ERROR_FILE_NOT_FOUND

Added in API level 5

File not found

Constant Value: -14 (0xfffffff2)

public static final int ERROR_HOST_LOOKUP

Added in API level 5

Server or proxy hostname lookup failed

Constant Value: -2 (0xfffffffe)

public static final int ERROR_IO

Added in API level 5

Failed to read or write to the server

Constant Value: -7 (0xfffffff9)

public static final int ERROR_PROXY_AUTHENTICATION

Added in API level 5

User authentication failed on proxy

Constant Value: -5 (0xfffffffb)

public static final int ERROR_REDIRECT_LOOP

Added in API level 5

Too many redirects

Constant Value: -9 (0xfffffff7)

public static final int ERROR_TIMEOUT

Added in API level 5

Connection timed out

Constant Value: -8 (0xfffffff8)

public static final int ERROR_TOO_MANY_REQUESTS

Added in API level 5

Too many requests during this load

Constant Value: -15 (0xfffffff1)

public static final int ERROR_UNKNOWN

Added in API level 5

Generic error

Constant Value: -1 (0xffffffff)

public static final int ERROR_UNSUPPORTED_AUTH_SCHEME

Added in API level 5

Unsupported authentication scheme (not basic or digest)

Constant Value: -3 (0xfffffffd)

public static final int ERROR_UNSUPPORTED_SCHEME

Added in API level 5

Unsupported URI scheme

Constant Value: -10 (0xfffffff6)

Public Constructors

public WebViewClient ()

Added in API level 1

Public Methods

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

Added in API level 1

Notify the host application to update its visited links database.

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

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

Added in API level 1

As the host application if the browser should resend data as the requested page was a result of a POST. The default is to not resend the data.

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

public void onLoadResource (WebView view, String url)

Added in API level 1

Notify the host application that the WebView will load the resource specified by the given url.

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

public void onPageFinished (WebView view, String url)

Added in API level 1

Notify the host application that a page has finished loading. This method is called only for main frame. When onPageFinished() is called, the rendering picture may not be updated yet. To get the notification for the new Picture, use onNewPicture(WebView, Picture).

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

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

Added in API level 1

Notify the host application that a page has started loading. This method is called once for each main frame load so a page with iframes or framesets will call onPageStarted one time for the main frame. This also means that onPageStarted will not be called when the contents of an embedded frame changes, i.e. clicking a link whose target is an iframe.

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

public void onReceivedClientCertRequest (WebView view, ClientCertRequest request)

Notify the host application to handle a SSL client certificate request. The host application is responsible for showing the UI if desired and providing the keys. There are three ways to respond: proceed(), cancel() or ignore(). Webview remembers the response if proceed() or cancel() is called and does not call onReceivedClientCertRequest() again for the same host and port pair. Webview does not remember the response if ignore() is called. This method is called on the UI thread. During the callback, the connection is suspended. The default behavior is to cancel, returning no client certificate.

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

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

Added in API level 1

Report an error to the host application. These errors are unrecoverable (i.e. the main resource is unavailable). The errorCode parameter corresponds to one of the ERROR_* constants.

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

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

Added in API level 1

Notifies the host application that the WebView received an HTTP authentication request. The host application can use the supplied HttpAuthHandler to set the WebView's response to the request. The default behavior is to cancel the request.

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

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

Added in API level 12

Notify the host application that a request to automatically log in the user has been processed.

Parameters
view The WebView requesting the login.
realm The account realm used to look up accounts.
account 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 Authenticator specific arguments used to log in the user.

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

Added in API level 8

Notify the host application that an SSL error occurred while loading a resource. The host application must call either handler.cancel() or handler.proceed(). Note that the decision may be retained for use in response to future SSL errors. The default behavior is to cancel the load.

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

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

Added in API level 1

Notify the host application that the scale applied to the WebView has changed.

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

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

Added in API level 1

This method was deprecated in API level 8.
This method is no longer called. When the WebView encounters a redirect loop, it will cancel the load.

Notify the host application that there have been an excessive number of HTTP redirects. As the host application if it would like to continue trying to load the resource. The default behavior is to send the cancel message.

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

public void onUnhandledInputEvent (WebView view, InputEvent event)

Notify the host application that a input event was not handled by the WebView. Except system keys, WebView always consumes input events in the normal flow or if shouldOverrideKeyEvent returns true. This is called asynchronously from where the event is dispatched. It gives the host application a chance to handle the unhandled input events. Note that if the event is a MotionEvent, then it's lifetime is only that of the function call. If the WebViewClient wishes to use the event beyond that, then it must create a copy of the event. It is the responsibility of overriders of this method to call onUnhandledKeyEvent(WebView, KeyEvent) when appropriate if they wish to continue receiving events through it.

Parameters
view The WebView that is initiating the callback.
event The input event.

public void onUnhandledKeyEvent (WebView view, KeyEvent event)

Added in API level 1

This method is deprecated.
This method is subsumed by the more generic onUnhandledInputEvent.

Notify the host application that a key was not handled by the WebView. Except system keys, WebView always consumes the keys in the normal flow or if shouldOverrideKeyEvent returns true. This is called asynchronously from where the key is dispatched. It gives the host application a chance to handle the unhandled key events.

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

public WebResourceResponse shouldInterceptRequest (WebView view, String url)

Added in API level 11

Notify the host application of a resource request and allow the application to return the data. If the return value is null, the WebView will continue to load the resource as usual. Otherwise, the return response and data will be used. NOTE: This method is called on a thread other than the UI thread so clients should exercise caution when accessing private data or the view system.

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

public boolean shouldOverrideKeyEvent (WebView view, KeyEvent event)

Added in API level 1

Give the host application a chance to handle the key event synchronously. e.g. menu shortcut key events need to be filtered this way. If return true, WebView will not handle the key event. If return false, WebView will always handle the key event, so none of the super in the view chain will see the key event. The default behavior returns false.

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

public boolean shouldOverrideUrlLoading (WebView view, String url)

Added in API level 1

Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView. If WebViewClient is not provided, by default WebView will ask Activity Manager to choose the proper handler for the url. If WebViewClient is provided, return true means the host application handles the url, while return false means the current WebView handles the url. This method is not called for requests using the POST "method".

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