WebView

public class WebView
extends AbsoluteLayout implements ViewTreeObserver.OnGlobalFocusChangeListener, ViewGroup.OnHierarchyChangeListener

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AbsoluteLayout
         ↳ android.webkit.WebView


A View that displays web pages.

Basic usage

In most cases, we recommend using a standard web browser, like Chrome, to deliver content to the user. To learn more about web browsers, read the guide on invoking a browser with an intent.

WebView objects allow you to display web content as part of your activity layout, but lack some of the features of fully-developed browsers. A WebView is useful when you need increased control over the UI and advanced configuration options that will allow you to embed web pages in a specially-designed environment for your app.

To learn more about WebView and alternatives for serving web content, read the documentation on Web-based content.

Summary

Nested classes

interface WebView.FindListener

Interface to listen for find results. 

class WebView.HitTestResult

 

interface WebView.PictureListener

This interface was deprecated in API level 12. This interface is now obsolete. 

class WebView.VisualStateCallback

Callback interface supplied to WebView.postVisualStateCallback(long, VisualStateCallback) for receiving notifications about the visual state. 

class WebView.WebViewTransport

Transportation object for returning WebView across thread boundaries. 

Inherited XML attributes

Constants

int RENDERER_PRIORITY_BOUND

The renderer associated with this WebView is bound with the default priority for services.

int RENDERER_PRIORITY_IMPORTANT

The renderer associated with this WebView is bound with Context#BIND_IMPORTANT.

int RENDERER_PRIORITY_WAIVED

The renderer associated with this WebView is bound with Context#BIND_WAIVE_PRIORITY.

String SCHEME_GEO

URI scheme for map address.

String SCHEME_MAILTO

URI scheme for email address.

String SCHEME_TEL

URI scheme for telephone number.

Inherited constants

Inherited fields

Public constructors

WebView(Context context)

Constructs a new WebView with an Activity Context object.

WebView(Context context, AttributeSet attrs)

Constructs a new WebView with layout parameters.

WebView(Context context, AttributeSet attrs, int defStyleAttr)

Constructs a new WebView with layout parameters and a default style.

WebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Constructs a new WebView with layout parameters and a default style.

WebView(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing)

This constructor is deprecated. Private browsing is no longer supported directly via WebView and will be removed in a future release. Prefer using WebSettings, WebViewDatabase, CookieManager and WebStorage for fine-grained control of privacy data.

Public methods

void addJavascriptInterface(Object object, String name)

Injects the supplied Java object into this WebView.

void autofill(SparseArray<AutofillValue> values)

Automatically fills the content of the virtual children within this view.

boolean canGoBack()

Gets whether this WebView has a back history item.

boolean canGoBackOrForward(int steps)

Gets whether the page can go back or forward the given number of steps.

boolean canGoForward()

Gets whether this WebView has a forward history item.

boolean canZoomIn()

This method was deprecated in API level 17. This method is prone to inaccuracy due to race conditions between the web rendering and UI threads; prefer WebViewClient#onScaleChanged.

boolean canZoomOut()

This method was deprecated in API level 17. This method is prone to inaccuracy due to race conditions between the web rendering and UI threads; prefer WebViewClient#onScaleChanged.

Picture capturePicture()

This method was deprecated in API level 19. Use onDraw(Canvas) to obtain a bitmap snapshot of the WebView, or saveWebArchive(String) to save the content to a file.

void clearCache(boolean includeDiskFiles)

Clears the resource cache.

static void clearClientCertPreferences(Runnable onCleared)

Clears the client certificate preferences stored in response to proceeding/cancelling client cert requests.

void clearFormData()

Removes the autocomplete popup from the currently focused form field, if present.

void clearHistory()

Tells this WebView to clear its internal back/forward list.

void clearMatches()

Clears the highlighting surrounding text matches created by findAllAsync(String).

void clearSslPreferences()

Clears the SSL preferences table stored in response to proceeding with SSL certificate errors.

void clearView()

This method was deprecated in API level 18. Use WebView.loadUrl("about:blank") to reliably reset the view state and release page resources (including any running JavaScript).

void computeScroll()

Called by a parent to request that a child update its values for mScrollX and mScrollY if necessary.

WebBackForwardList copyBackForwardList()

Gets the WebBackForwardList for this WebView.

PrintDocumentAdapter createPrintDocumentAdapter(String documentName)

Creates a PrintDocumentAdapter that provides the content of this WebView for printing.

PrintDocumentAdapter createPrintDocumentAdapter()

This method was deprecated in API level 21. Use createPrintDocumentAdapter(java.lang.String) which requires user to provide a print document name.

WebMessagePort[] createWebMessageChannel()

Creates a message channel to communicate with JS and returns the message ports that represent the endpoints of this message channel.

void destroy()

Destroys the internal state of this WebView.

static void disableWebView()

Indicate that the current process does not intend to use WebView, and that an exception should be thrown if a WebView is created or any other methods in the android.webkit package are used.

void dispatchCreateViewTranslationRequest(Map<AutofillId, long[]> viewIds, int[] supportedFormats, TranslationCapability capability, List<ViewTranslationRequest> requests)

Dispatch to collect the ViewTranslationRequests for translation purpose by traversing the hierarchy when the app requests ui translation. The implementation calls dispatchCreateViewTranslationRequest(Map, int, TranslationCapability, List) for all the child views.

boolean dispatchKeyEvent(KeyEvent event)

Dispatch a key event to the next view on the focus path.

void documentHasImages(Message response)

Queries the document to see if it contains any image references.

static void enableSlowWholeDocumentDraw()

For apps targeting the L release, WebView has a new default behavior that reduces memory footprint and increases performance by intelligently choosing the portion of the HTML document that needs to be drawn.

void evaluateJavascript(String script, ValueCallback<String> resultCallback)

Asynchronously evaluates JavaScript in the context of the currently displayed page.

static String findAddress(String addr)

This method was deprecated in API level 28. This method is superseded by TextClassifier#generateLinks( android.view.textclassifier.TextLinks.Request). Avoid using this method even when targeting API levels where no alternative is available.

int findAll(String find)

This method was deprecated in API level 16. findAllAsync(String) is preferred.

void findAllAsync(String find)

Finds all instances of find on the page and highlights them, asynchronously.

View findFocus()

Find the view in the hierarchy rooted at this view that currently has focus.

void findNext(boolean forward)

Highlights and scrolls to the next match found by findAllAsync(String), wrapping around page boundaries as necessary.

void flingScroll(int vx, int vy)
void freeMemory()

This method was deprecated in API level 19. Memory caches are automatically dropped when no longer needed, and in response to system memory pressure.

CharSequence getAccessibilityClassName()

Return the class name of this object to be used for accessibility purposes.

AccessibilityNodeProvider getAccessibilityNodeProvider()

Gets the provider for managing a virtual view hierarchy rooted at this View and reported to AccessibilityServices that explore the window content.

SslCertificate getCertificate()

Gets the SSL certificate for the main top-level page or null if there is no certificate (the site is not secure).

int getContentHeight()

Gets the height of the HTML content.

static PackageInfo getCurrentWebViewPackage()

If WebView has already been loaded into the current process this method will return the package that was used to load it.

Bitmap getFavicon()

Gets the favicon for the current page.

Handler getHandler()
WebView.HitTestResult getHitTestResult()

Gets a HitTestResult based on the current cursor node.

String[] getHttpAuthUsernamePassword(String host, String realm)

This method was deprecated in API level 26. Use WebViewDatabase#getHttpAuthUsernamePassword instead

String getOriginalUrl()

Gets the original URL for the current page.

int getProgress()

Gets the progress for the current page.

boolean getRendererPriorityWaivedWhenNotVisible()

Return whether this WebView requests a priority of RENDERER_PRIORITY_WAIVED when not visible.

int getRendererRequestedPriority()

Get the requested renderer priority for this WebView.

static Uri getSafeBrowsingPrivacyPolicyUrl()

Returns a URL pointing to the privacy policy for Safe Browsing reporting.

float getScale()

This method was deprecated in API level 17. This method is prone to inaccuracy due to race conditions between the web rendering and UI threads; prefer WebViewClient#onScaleChanged.

WebSettings getSettings()

Gets the WebSettings object used to control the settings for this WebView.

TextClassifier getTextClassifier()

Returns the TextClassifier used by this WebView.

String getTitle()

Gets the title for the current page.

String getUrl()

Gets the URL for the current page.

WebChromeClient getWebChromeClient()

Gets the chrome handler.

static ClassLoader getWebViewClassLoader()

Returns the ClassLoader used to load internal WebView classes.

WebViewClient getWebViewClient()

Gets the WebViewClient.

Looper getWebViewLooper()

Returns the Looper corresponding to the thread on which WebView calls must be made.

WebViewRenderProcess getWebViewRenderProcess()

Gets a handle to the WebView renderer process associated with this WebView.

WebViewRenderProcessClient getWebViewRenderProcessClient()

Gets the renderer client object associated with this WebView.

void goBack()

Goes back in the history of this WebView.

void goBackOrForward(int steps)

Goes to the history item that is the number of steps away from the current item.

void goForward()

Goes forward in the history of this WebView.

void invokeZoomPicker()

Invokes the graphical zoom picker widget for this WebView.

boolean isPrivateBrowsingEnabled()

Gets whether private browsing is enabled in this WebView.

boolean isVisibleToUserForAutofill(int virtualId)

Computes whether this virtual autofill view is visible to the user.

void loadData(String data, String mimeType, String encoding)

Loads the given data into this WebView using a 'data' scheme URL.

void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)

Loads the given data into this WebView, using baseUrl as the base URL for the content.

void loadUrl(String url)

Loads the given URL.

void loadUrl(String url, Map<StringString> additionalHttpHeaders)

Loads the given URL with additional HTTP headers, specified as a map from name to value.

WindowInsets onApplyWindowInsets(WindowInsets insets)

Called when the view should apply WindowInsets according to its internal policy.

boolean onCheckIsTextEditor()

Check whether the called view is a text editor, in which case it would make sense to automatically display a soft input window for it.

void onChildViewAdded(View parent, View child)

This method is deprecated. WebView no longer needs to implement ViewGroup.OnHierarchyChangeListener. This method does nothing now.

void onChildViewRemoved(View p, View child)

This method is deprecated. WebView no longer needs to implement ViewGroup.OnHierarchyChangeListener. This method does nothing now.

InputConnection onCreateInputConnection(EditorInfo outAttrs)

Creates a new InputConnection for an InputMethod to interact with the WebView.

void onCreateVirtualViewTranslationRequests(long[] virtualIds, int[] supportedFormats, Consumer<ViewTranslationRequest> requestsCollector)

Collects ViewTranslationRequests which represents the content to be translated for the virtual views in the host view.

boolean onDragEvent(DragEvent event)

Handles drag events sent by the system following a call to startDragAndDrop().

void onFinishTemporaryDetach()

Called after onStartTemporaryDetach() when the container is done changing the view.

boolean onGenericMotionEvent(MotionEvent event)

Implement this method to handle generic motion events.

void onGlobalFocusChanged(View oldFocus, View newFocus)

This method is deprecated. WebView should not have implemented ViewTreeObserver.OnGlobalFocusChangeListener. This method does nothing now.

boolean onHoverEvent(MotionEvent event)

Implement this method to handle hover events.

boolean onKeyDown(int keyCode, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view when KeyEvent#KEYCODE_DPAD_CENTER or KeyEvent#KEYCODE_ENTER is released, if the view is enabled and clickable.

boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).

boolean onKeyUp(int keyCode, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyUp(): perform clicking of the view when KeyEvent#KEYCODE_DPAD_CENTER, KeyEvent#KEYCODE_ENTER or KeyEvent#KEYCODE_SPACE is released.

void onPause()

Does a best-effort attempt to pause any processing that can be paused safely, such as animations and geolocation.

void onProvideAutofillVirtualStructure(ViewStructure structure, int flags)

Populates a ViewStructure containing virtual children to fullfil an autofill request.

The ViewStructure traditionally represents a View, while for web pages it represent HTML nodes.

void onProvideContentCaptureStructure(ViewStructure structure, int flags)

Populates a ViewStructure for content capture.

void onProvideVirtualStructure(ViewStructure structure)

Called when assist structure is being retrieved from a view as part of Activity.onProvideAssistData to generate additional virtual structure under this view.

PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex)

Resolve the pointer icon that should be used for specified pointer in the motion event.

void onResume()

Resumes a WebView after a previous call to onPause().

void onStartTemporaryDetach()

This is called when a container is going to temporarily detach a child, with ViewGroup.detachViewFromParent.

boolean onTouchEvent(MotionEvent event)

Implement this method to handle touch screen motion events.

boolean onTrackballEvent(MotionEvent event)

Implement this method to handle trackball motion events.

void onVirtualViewTranslationResponses(LongSparseArray<ViewTranslationResponse> response)

Called when the content from View#onCreateVirtualViewTranslationRequests had been translated by the TranslationService.

void onWindowFocusChanged(boolean hasWindowFocus)

Called when the window containing this view gains or loses focus.

boolean overlayHorizontalScrollbar()

This method was deprecated in API level 23. This method is now obsolete.

boolean overlayVerticalScrollbar()

This method was deprecated in API level 23. This method is now obsolete.

boolean pageDown(boolean bottom)

Scrolls the contents of this WebView down by half the page size.

boolean pageUp(boolean top)

Scrolls the contents of this WebView up by half the view size.

void pauseTimers()

Pauses all layout, parsing, and JavaScript timers for all WebViews.

boolean performLongClick()

Calls this view's OnLongClickListener, if it is defined.

void postUrl(String url, byte[] postData)

Loads the URL with postData using "POST" method into this WebView.

void postVisualStateCallback(long requestId, WebView.VisualStateCallback callback)

Posts a VisualStateCallback, which will be called when the current state of the WebView is ready to be drawn.

void postWebMessage(WebMessage message, Uri targetOrigin)

Post a message to main frame.

void reload()

Reloads the current URL.

void removeJavascriptInterface(String name)

Removes a previously injected Java object from this WebView.

boolean requestChildRectangleOnScreen(View child, Rect rect, boolean immediate)

Called when a child of this group wants a particular rectangle to be positioned onto the screen.

boolean requestFocus(int direction, Rect previouslyFocusedRect)

Call this to try to give focus to a specific view or to one of its descendants and give it hints about the direction and a specific rectangle that the focus is coming from. Looks for a view to give focus to respecting the setting specified by getDescendantFocusability().

void requestFocusNodeHref(Message hrefMsg)

Requests the anchor or image element URL at the last tapped point.

void requestImageRef(Message msg)

Requests the URL of the image last touched by the user.

WebBackForwardList restoreState(Bundle inState)

Restores the state of this WebView from the given Bundle.

void resumeTimers()

Resumes all layout, parsing, and JavaScript timers for all WebViews.

void savePassword(String host, String username, String password)

This method was deprecated in API level 18. Saving passwords in WebView will not be supported in future versions.

WebBackForwardList saveState(Bundle outState)

Saves the state of this WebView used in Activity.onSaveInstanceState(Bundle).

void saveWebArchive(String filename)

Saves the current view as a web archive.

void saveWebArchive(String basename, boolean autoname, ValueCallback<String> callback)

Saves the current view as a web archive.

void setBackgroundColor(int color)

Sets the background color for this view.

void setCertificate(SslCertificate certificate)

This method was deprecated in API level 17. Calling this function has no useful effect, and will be ignored in future releases.

static void setDataDirectorySuffix(String suffix)

Define the directory used to store WebView data for the current process.

void setDownloadListener(DownloadListener listener)

Registers the interface to be used when content can not be handled by the rendering engine, and should be downloaded instead.

void setFindListener(WebView.FindListener listener)

Registers the listener to be notified as find-on-page operations progress.

void setHorizontalScrollbarOverlay(boolean overlay)

This method was deprecated in API level 23. This method has no effect.

void setHttpAuthUsernamePassword(String host, String realm, String username, String password)

This method was deprecated in API level 26. Use WebViewDatabase#setHttpAuthUsernamePassword instead

void setInitialScale(int scaleInPercent)

Sets the initial scale for this WebView.

void setLayerType(int layerType, Paint paint)

Specifies the type of layer backing this view.

void setLayoutParams(ViewGroup.LayoutParams params)

Set the layout parameters associated with this view.

void setMapTrackballToArrowKeys(boolean setMap)

This method was deprecated in API level 17. Only the default case, true, will be supported in a future version.

void setNetworkAvailable(boolean networkUp)

Informs WebView of the network state.

void setOverScrollMode(int mode)

Set the over-scroll mode for this view.

void setPictureListener(WebView.PictureListener listener)

This method was deprecated in API level 15. This method is now obsolete.

void setRendererPriorityPolicy(int rendererRequestedPriority, boolean waivedWhenNotVisible)

Set the renderer priority policy for this WebView.

static void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback)

Sets the list of hosts (domain names/IP addresses) that are exempt from SafeBrowsing checks.

void setScrollBarStyle(int style)

Specify the style of the scrollbars.

void setTextClassifier(TextClassifier textClassifier)

Sets the TextClassifier for this WebView.

void setVerticalScrollbarOverlay(boolean overlay)

This method was deprecated in API level 23. This method has no effect.

void setWebChromeClient(WebChromeClient client)

Sets the chrome handler.

static void setWebContentsDebuggingEnabled(boolean enabled)

Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application.

void setWebViewClient(WebViewClient client)

Sets the WebViewClient that will receive various notifications and requests.

void setWebViewRenderProcessClient(Executor executor, WebViewRenderProcessClient webViewRenderProcessClient)

Sets the renderer client object associated with this WebView.

void setWebViewRenderProcessClient(WebViewRenderProcessClient webViewRenderProcessClient)

Sets the renderer client object associated with this WebView.

boolean shouldDelayChildPressedState()

Return true if the pressed state should be delayed for children or descendants of this ViewGroup.

boolean showFindDialog(String text, boolean showIme)

This method was deprecated in API level 18. This method does not work reliably on all Android versions; implementing a custom find dialog using WebView.findAllAsync() provides a more robust solution.

static void startSafeBrowsing(Context context, ValueCallback<Boolean> callback)

Starts Safe Browsing initialization.

void stopLoading()

Stops the current load.

void zoomBy(float zoomFactor)

Performs a zoom operation in this WebView.

boolean zoomIn()

Performs zoom in in this WebView.

boolean zoomOut()

Performs zoom out in this WebView.

Protected methods

int computeHorizontalScrollOffset()

Compute the horizontal offset of the horizontal scrollbar's thumb within the horizontal range.

int computeHorizontalScrollRange()

Compute the horizontal range that the horizontal scrollbar represents.

int computeVerticalScrollExtent()

Compute the vertical extent of the vertical scrollbar's thumb within the vertical range.

int computeVerticalScrollOffset()

Compute the vertical offset of the vertical scrollbar's thumb within the horizontal range.

int computeVerticalScrollRange()

Compute the vertical range that the vertical scrollbar represents.

void dispatchDraw(Canvas canvas)

Called by draw to draw the child views.

void onAttachedToWindow()

This is called when the view is attached to a window.

void onConfigurationChanged(Configuration newConfig)

Called when the current configuration of the resources being used by the application have changed.

void onDraw(Canvas canvas)

Implement this to do your drawing.

void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect)

Called by the view system when the focus state of this view changes.

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height.

void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)

Called by overScrollBy(int, int, int, int, int, int, int, int, boolean) to respond to the results of an over-scroll operation.

void onScrollChanged(int l, int t, int oldl, int oldt)

This is called in response to an internal scroll in this view (i.e., the view scrolled its own contents).

void onSizeChanged(int w, int h, int ow, int oh)

This is called during layout when the size of this view has changed.

void onVisibilityChanged(View changedView, int visibility)

Called when the visibility of the view or an ancestor of the view has changed.

void onWindowVisibilityChanged(int visibility)

Called when the window containing has change its visibility (between GONE, INVISIBLE, and VISIBLE).

Inherited methods

Constants

RENDERER_PRIORITY_BOUND

Added in API level 26
public static final int RENDERER_PRIORITY_BOUND

The renderer associated with this WebView is bound with the default priority for services. Use with setRendererPriorityPolicy(int, boolean).

Constant Value: 1 (0x00000001)

RENDERER_PRIORITY_IMPORTANT

Added in API level 26
public static final int RENDERER_PRIORITY_IMPORTANT

The renderer associated with this WebView is bound with Context#BIND_IMPORTANT. Use with setRendererPriorityPolicy(int, boolean).

Constant Value: 2 (0x00000002)

RENDERER_PRIORITY_WAIVED

Added in API level 26
public static final int RENDERER_PRIORITY_WAIVED

The renderer associated with this WebView is bound with Context#BIND_WAIVE_PRIORITY. At this priority level WebView renderers will be strong targets for out of memory killing. Use with setRendererPriorityPolicy(int, boolean).

Constant Value: 0 (0x00000000)

SCHEME_GEO

Added in API level 1
public static final String SCHEME_GEO

URI scheme for map address.

Constant Value: "geo:0,0?q="

SCHEME_MAILTO

Added in API level 1
public static final String SCHEME_MAILTO

URI scheme for email address.

Constant Value: "mailto:"

SCHEME_TEL

Added in API level 1
public static final String SCHEME_TEL

URI scheme for telephone number.

Constant Value: "tel:"

Public constructors

WebView

Added in API level 1
public WebView (Context context)

Constructs a new WebView with an Activity Context object.

Note: WebView should always be instantiated with an Activity Context. If instantiated with an Application Context, WebView will be unable to provide several features, such as JavaScript dialogs and autofill.

Parameters
context Context: an Activity Context to access application assets This value cannot be null.

WebView

Added in API level 1
public WebView (Context context, 
                AttributeSet attrs)

Constructs a new WebView with layout parameters.

Parameters
context Context: an Activity Context to access application assets This value cannot be null.

attrs AttributeSet: an AttributeSet passed to our parent This value may be null.

WebView

Added in API level 1
public WebView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Constructs a new WebView with layout parameters and a default style.

Parameters
context Context: an Activity Context to access application assets This value cannot be null.

attrs AttributeSet: an AttributeSet passed to our parent This value may be null.

defStyleAttr int: an attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults.

WebView

Added in API level 1
public WebView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Constructs a new WebView with layout parameters and a default style.

Parameters
context Context: an Activity Context to access application assets This value cannot be null.

attrs AttributeSet: an AttributeSet passed to our parent This value may be null.

defStyleAttr int: an attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults.

defStyleRes int: a resource identifier of a style resource that supplies default values for the view, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults.

WebView

Added in API level 1
public WebView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                boolean privateBrowsing)

This constructor is deprecated.
Private browsing is no longer supported directly via WebView and will be removed in a future release. Prefer using WebSettings, WebViewDatabase, CookieManager and WebStorage for fine-grained control of privacy data.

Constructs a new WebView with layout parameters and a default style.

Parameters
context Context: an Activity Context to access application assets This value cannot be null.

attrs AttributeSet: an AttributeSet passed to our parent This value may be null.

defStyleAttr int: an attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults.

privateBrowsing boolean: whether this WebView will be initialized in private mode

Public methods

addJavascriptInterface

Added in API level 1
public void addJavascriptInterface (Object object, 
                String name)

Injects the supplied Java object into this WebView. The object is injected into all frames of the web page, including all the iframes, using the supplied name. This allows the Java object's methods to be accessed from JavaScript. For applications targeted to API level Build.VERSION_CODES.JELLY_BEAN_MR1 and above, only public methods that are annotated with JavascriptInterface can be accessed from JavaScript. For applications targeted to API level Build.VERSION_CODES.JELLY_BEAN or below, all public methods (including the inherited ones) can be accessed, see the important security note below for implications.

Note that injected objects will not appear in JavaScript until the page is next (re)loaded. JavaScript should be enabled before injecting the object. For example:

 class JsObject {
    @JavascriptInterface
    public String toString() { return "injectedObject"; }
 }
 webview.getSettings().setJavaScriptEnabled(true);
 webView.addJavascriptInterface(new JsObject(), "injectedObject");
 webView.loadData("html", "text/html", null);
 webView.loadUrl("javascript:alert(injectedObject.toString())");

IMPORTANT:

  • This method can be used to allow JavaScript to control the host application. This is a powerful feature, but also presents a security risk for apps targeting Build.VERSION_CODES.JELLY_BEAN or earlier. Apps that target a version later than Build.VERSION_CODES.JELLY_BEAN are still vulnerable if the app runs on a device running Android earlier than 4.2. The most secure way to use this method is to target Build.VERSION_CODES.JELLY_BEAN_MR1 and to ensure the method is called only when running on Android 4.2 or later. With these older versions, JavaScript could use reflection to access an injected object's public fields. Use of this method in a WebView containing untrusted content could allow an attacker to manipulate the host application in unintended ways, executing Java code with the permissions of the host application. Use extreme care when using this method in a WebView which could contain untrusted content.
  • JavaScript interacts with Java object on a private, background thread of this WebView. Care is therefore required to maintain thread safety.
  • Because the object is exposed to all the frames, any frame could obtain the object name and call methods on it. There is no way to tell the calling frame's origin from the app side, so the app must not assume that the caller is trustworthy unless the app can guarantee that no third party content is ever loaded into the WebView even inside an iframe.
  • The Java object's fields are not accessible.
  • For applications targeted to API level Build.VERSION_CODES.LOLLIPOP and above, methods of injected Java objects are enumerable from JavaScript.

Parameters
object Object: the Java object to inject into this WebView's JavaScript context. null values are ignored.

name String: the name used to expose the object in JavaScript This value cannot be null.

autofill

Added in API level 26
public void autofill (SparseArray<AutofillValue> values)

Automatically fills the content of the virtual children within this view.

Views with virtual children support the Autofill Framework mainly by:

  • Providing the metadata defining what the virtual children mean and how they can be autofilled.
  • Implementing the methods that autofill the virtual children.

onProvideAutofillVirtualStructure(android.view.ViewStructure, int) is responsible for the former, this method is responsible for the latter - see autofill(android.view.autofill.AutofillValue) and onProvideAutofillVirtualStructure(android.view.ViewStructure, int) for more info about autofill.

If a child value is updated asynchronously, the next call to AutofillManager#notifyValueChanged(View, int, AutofillValue) must happen after the value was changed to the autofilled value. If not, the child will not be considered autofilled.

Note: To indicate that a virtual view was autofilled, ?android:attr/autofilledHighlight should be drawn over it until the data changes.

Parameters
values SparseArray: map of values to be autofilled, keyed by virtual child id. This value cannot be null.

canGoBack

Added in API level 1
public boolean canGoBack ()

Gets whether this WebView has a back history item.

Returns
boolean true if this WebView has a back history item

canGoBackOrForward

Added in API level 1
public boolean canGoBackOrForward (int steps)

Gets whether the page can go back or forward the given number of steps.

Parameters
steps int: the negative or positive number of steps to move the history

Returns
boolean

canGoForward

Added in API level 1
public boolean canGoForward ()

Gets whether this WebView has a forward history item.

Returns
boolean true if this WebView has a forward history item

canZoomIn

Added in API level 11
Deprecated in API level 17
public boolean canZoomIn ()

This method was deprecated in API level 17.
This method is prone to inaccuracy due to race conditions between the web rendering and UI threads; prefer WebViewClient#onScaleChanged.

Gets whether this WebView can be zoomed in.

Returns
boolean true if this WebView can be zoomed in

canZoomOut

Added in API level 11
Deprecated in API level 17
public boolean canZoomOut ()

This method was deprecated in API level 17.
This method is prone to inaccuracy due to race conditions between the web rendering and UI threads; prefer WebViewClient#onScaleChanged.

Gets whether this WebView can be zoomed out.

Returns
boolean true if this WebView can be zoomed out

capturePicture

Added in API level 1
Deprecated in API level 19
public Picture capturePicture ()

This method was deprecated in API level 19.
Use onDraw(Canvas) to obtain a bitmap snapshot of the WebView, or saveWebArchive(String) to save the content to a file.

Gets a new picture that captures the current contents of this WebView. The picture is of the entire document being displayed, and is not limited to the area currently displayed by this WebView. Also, the picture is a static copy and is unaffected by later changes to the content being displayed.

Note that due to internal changes, for API levels between Build.VERSION_CODES.HONEYCOMB and Build.VERSION_CODES.ICE_CREAM_SANDWICH inclusive, the picture does not include fixed position elements or scrollable divs.

Note that from Build.VERSION_CODES.JELLY_BEAN_MR1 the returned picture should only be drawn into bitmap-backed Canvas - using any other type of Canvas will involve additional conversion at a cost in memory and performance.

Returns
Picture a picture that captures the current contents of this WebView

clearCache

Added in API level 1
public void clearCache (boolean includeDiskFiles)

Clears the resource cache. Note that the cache is per-application, so this will clear the cache for all WebViews used.

Parameters
includeDiskFiles boolean: if false, only the RAM cache is cleared

clearClientCertPreferences

Added in API level 21
public static void clearClientCertPreferences (Runnable onCleared)

Clears the client certificate preferences stored in response to proceeding/cancelling client cert requests. Note that WebView automatically clears these preferences when the system keychain is updated. The preferences are shared by all the WebViews that are created by the embedder application.

Parameters
onCleared Runnable: A runnable to be invoked when client certs are cleared. The runnable will be called in UI thread. This value may be null.

clearFormData

Added in API level 1
public void clearFormData ()

Removes the autocomplete popup from the currently focused form field, if present. Note this only affects the display of the autocomplete popup, it does not remove any saved form data from this WebView's store. To do that, use WebViewDatabase#clearFormData.

clearHistory

Added in API level 1
public void clearHistory ()

Tells this WebView to clear its internal back/forward list.

clearMatches

Added in API level 3
public void clearMatches ()

Clears the highlighting surrounding text matches created by findAllAsync(String).

clearSslPreferences

Added in API level 1
public void clearSslPreferences ()

Clears the SSL preferences table stored in response to proceeding with SSL certificate errors.

clearView

Added in API level 1
Deprecated in API level 18
public void clearView ()

This method was deprecated in API level 18.
Use WebView.loadUrl("about:blank") to reliably reset the view state and release page resources (including any running JavaScript).

Clears this WebView so that onDraw() will draw nothing but white background, and onMeasure() will return 0 if MeasureSpec is not MeasureSpec.EXACTLY.

computeScroll

Added in API level 1
public void computeScroll ()

Called by a parent to request that a child update its values for mScrollX and mScrollY if necessary. This will typically be done if the child is animating a scroll using a Scroller object.

copyBackForwardList

Added in API level 1
public WebBackForwardList copyBackForwardList ()

Gets the WebBackForwardList for this WebView. This contains the back/forward list for use in querying each item in the history stack. This is a copy of the private WebBackForwardList so it contains only a snapshot of the current state. Multiple calls to this method may return different objects. The object returned from this method will not be updated to reflect any new state.

Returns
WebBackForwardList This value cannot be null.

createPrintDocumentAdapter

Added in API level 21
public PrintDocumentAdapter createPrintDocumentAdapter (String documentName)

Creates a PrintDocumentAdapter that provides the content of this WebView for printing. The adapter works by converting the WebView contents to a PDF stream. The WebView cannot be drawn during the conversion process - any such draws are undefined. It is recommended to use a dedicated off screen WebView for the printing. If necessary, an application may temporarily hide a visible WebView by using a custom PrintDocumentAdapter instance wrapped around the object returned and observing the onStart and onFinish methods. See PrintDocumentAdapter for more information.

Parameters
documentName String: The user-facing name of the printed document. See PrintDocumentInfo This value cannot be null.

Returns
PrintDocumentAdapter This value cannot be null.

createPrintDocumentAdapter

Added in API level 19
Deprecated in API level 21
public PrintDocumentAdapter createPrintDocumentAdapter ()

This method was deprecated in API level 21.
Use createPrintDocumentAdapter(java.lang.String) which requires user to provide a print document name.

Returns
PrintDocumentAdapter

createWebMessageChannel

Added in API level 23
public WebMessagePort[] createWebMessageChannel ()

Creates a message channel to communicate with JS and returns the message ports that represent the endpoints of this message channel. The HTML5 message channel functionality is described here

The returned message channels are entangled and already in started state.

Returns
WebMessagePort[] the two message ports that form the message channel. This value cannot be null.

destroy

Added in API level 1
public void destroy ()

Destroys the internal state of this WebView. This method should be called after this WebView has been removed from the view system. No other methods may be called on this WebView after destroy.

disableWebView

Added in API level 28
public static void disableWebView ()

Indicate that the current process does not intend to use WebView, and that an exception should be thrown if a WebView is created or any other methods in the android.webkit package are used.

Applications with multiple processes may wish to call this in processes that are not intended to use WebView to avoid accidentally incurring the memory usage of initializing WebView in long-lived processes that have no need for it, and to prevent potential data directory conflicts (see setDataDirectorySuffix(String)).

For example, an audio player application with one process for its activities and another process for its playback service may wish to call this method in the playback service's Service.onCreate().

Throws
IllegalStateException if WebView has already been initialized in the current process.

dispatchCreateViewTranslationRequest

Added in API level 31
public void dispatchCreateViewTranslationRequest (Map<AutofillId, long[]> viewIds, 
                int[] supportedFormats, 
                TranslationCapability capability, 
                List<ViewTranslationRequest> requests)

Dispatch to collect the ViewTranslationRequests for translation purpose by traversing the hierarchy when the app requests ui translation. Typically, this method should only be overridden by subclasses that provide a view hierarchy (such as ViewGroup). Other classes should override View#onCreateViewTranslationRequest for normal view or override View#onVirtualViewTranslationResponses for view contains virtual children. When requested to start the ui translation, the system will call this method to traverse the view hierarchy to collect ViewTranslationRequests and create a Translator to translate the requests. All the ViewTranslationRequests must be added when the traversal is done.

The default implementation calls View#onCreateViewTranslationRequest for normal view or calls View#onVirtualViewTranslationResponses for view contains virtual children to build ViewTranslationRequest if the view should be translated. The view is marked as having transient state so that recycling of views doesn't prevent the system from attaching the response to it. Therefore, if overriding this method, you should set or reset the transient state.

The implementation calls dispatchCreateViewTranslationRequest(Map, int, TranslationCapability, List) for all the child views.

Parameters
viewIds Map: This value cannot be null.

supportedFormats int: This value cannot be null. Value is TranslationSpec.DATA_FORMAT_TEXT

capability TranslationCapability: This value may be null.

requests List: This value cannot be null.

dispatchKeyEvent

Added in API level 1
public boolean dispatchKeyEvent (KeyEvent event)

Dispatch a key event to the next view on the focus path. This path runs from the top of the view tree down to the currently focused view. If this view has focus, it will dispatch to itself. Otherwise it will dispatch the next node down the focus path. This method also fires any key listeners.

Parameters
event KeyEvent: The key event to be dispatched.

Returns
boolean True if the event was handled, false otherwise.

documentHasImages

Added in API level 1
public void documentHasImages (Message response)

Queries the document to see if it contains any image references. The message object will be dispatched with arg1 being set to 1 if images were found and 0 if the document does not reference any images.

Parameters
response Message: the message that will be dispatched with the result This value cannot be null.

enableSlowWholeDocumentDraw

Added in API level 21
public static void enableSlowWholeDocumentDraw ()

For apps targeting the L release, WebView has a new default behavior that reduces memory footprint and increases performance by intelligently choosing the portion of the HTML document that needs to be drawn. These optimizations are transparent to the developers. However, under certain circumstances, an App developer may want to disable them:

  1. When an app uses onDraw(Canvas) to do own drawing and accesses portions of the page that is way outside the visible portion of the page.
  2. When an app uses capturePicture() to capture a very large HTML document. Note that capturePicture is a deprecated API.
Enabling drawing the entire HTML document has a significant performance cost. This method should be called before any WebViews are created.

evaluateJavascript

Added in API level 19
public void evaluateJavascript (String script, 
                ValueCallback<String> resultCallback)

Asynchronously evaluates JavaScript in the context of the currently displayed page. If non-null, resultCallback will be invoked with any result returned from that execution. This method must be called on the UI thread and the callback will be made on the UI thread.

Compatibility note. Applications targeting Build.VERSION_CODES.N or later, JavaScript state from an empty WebView is no longer persisted across navigations like loadUrl(java.lang.String). For example, global variables and functions defined before calling loadUrl(java.lang.String) will not exist in the loaded page. Applications should use addJavascriptInterface(Object, String) instead to persist JavaScript objects across navigations.

Parameters
script String: the JavaScript to execute. This value cannot be null.

resultCallback ValueCallback: A callback to be invoked when the script execution completes with the result of the execution (if any). May be null if no notification of the result is required.

findAddress

Added in API level 1
Deprecated in API level 28
public static String findAddress (String addr)

This method was deprecated in API level 28.
This method is superseded by TextClassifier#generateLinks( android.view.textclassifier.TextLinks.Request). Avoid using this method even when targeting API levels where no alternative is available.

Gets the first substring which appears to be the address of a physical location. Only addresses in the United States can be detected, which must consist of:

  • a house number
  • a street name
  • a street type (Road, Circle, etc), either spelled out or abbreviated
  • a city name
  • a state or territory, either spelled out or two-letter abbr
  • an optional 5 digit or 9 digit zip code
All names must be correctly capitalized, and the zip code, if present, must be valid for the state. The street type must be a standard USPS spelling or abbreviation. The state or territory must also be spelled or abbreviated using USPS standards. The house number may not exceed five digits.

Note: This function is deprecated and should be avoided on all API levels, as it cannot detect addresses outside of the United States and has a high rate of false positives. On API level Build.VERSION_CODES.O_MR1 and earlier, it also causes the entire WebView implementation to be loaded and initialized, which can throw AndroidRuntimeException or other exceptions if the WebView implementation is currently being updated.

Parameters
addr String: the string to search for addresses

Returns
String the address, or if no address is found, null

findAll

Added in API level 3
Deprecated in API level 16
public int findAll (String find)

This method was deprecated in API level 16.
findAllAsync(String) is preferred.

Finds all instances of find on the page and highlights them. Notifies any registered FindListener.

Parameters
find String: the string to find

Returns
int the number of occurrences of the String "find" that were found

findAllAsync

Added in API level 16
public void findAllAsync (String find)

Finds all instances of find on the page and highlights them, asynchronously. Notifies any registered FindListener. Successive calls to this will cancel any pending searches.

Parameters
find String: the string to find. This value cannot be null.

findFocus

Added in API level 1
public View findFocus ()

Find the view in the hierarchy rooted at this view that currently has focus.

Returns
View The view that currently has focus, or null if no focused view can be found.

findNext

Added in API level 3
public void findNext (boolean forward)

Highlights and scrolls to the next match found by findAllAsync(String), wrapping around page boundaries as necessary. Notifies any registered FindListener. If findAllAsync(java.lang.String) has not been called yet, or if clearMatches() has been called since the last find operation, this function does nothing.

Parameters
forward boolean: the direction to search

flingScroll

Added in API level 1
public void flingScroll (int vx, 
                int vy)

Parameters
vx int

vy int

freeMemory

Added in API level 7
Deprecated in API level 19
public void freeMemory ()

This method was deprecated in API level 19.
Memory caches are automatically dropped when no longer needed, and in response to system memory pressure.

Informs this WebView that memory is low so that it can free any available memory.

getAccessibilityClassName

Added in API level 23
public CharSequence getAccessibilityClassName ()

Return the class name of this object to be used for accessibility purposes. Subclasses should only override this if they are implementing something that should be seen as a completely new class of view when used by accessibility, unrelated to the class it is deriving from. This is used to fill in AccessibilityNodeInfo.setClassName.

Returns
CharSequence

getAccessibilityNodeProvider

Added in API level 16
public AccessibilityNodeProvider getAccessibilityNodeProvider ()

Gets the provider for managing a virtual view hierarchy rooted at this View and reported to AccessibilityServices that explore the window content.

If this method returns an instance, this instance is responsible for managing AccessibilityNodeInfos describing the virtual sub-tree rooted at this View including the one representing the View itself. Similarly the returned instance is responsible for performing accessibility actions on any virtual view or the root view itself.

If an AccessibilityDelegate has been specified via calling setAccessibilityDelegate(android.view.View.AccessibilityDelegate) its AccessibilityDelegate#getAccessibilityNodeProvider(View) is responsible for handling this call.

Returns
AccessibilityNodeProvider The provider.

getCertificate

Added in API level 1
public SslCertificate getCertificate ()

Gets the SSL certificate for the main top-level page or null if there is no certificate (the site is not secure).

Returns
SslCertificate the SSL certificate for the main top-level page

getContentHeight

Added in API level 1
public int getContentHeight ()

Gets the height of the HTML content.

Returns
int the height of the HTML content

getCurrentWebViewPackage

Added in API level 26
public static PackageInfo getCurrentWebViewPackage ()

If WebView has already been loaded into the current process this method will return the package that was used to load it. Otherwise, the package that would be used if the WebView was loaded right now will be returned; this does not cause WebView to be loaded, so this information may become outdated at any time. The WebView package changes either when the current WebView package is updated, disabled, or uninstalled. It can also be changed through a Developer Setting. If the WebView package changes, any app process that has loaded WebView will be killed. The next time the app starts and loads WebView it will use the new WebView package instead.

Returns
PackageInfo the current WebView package, or null if there is none.

getFavicon

Added in API level 1
public Bitmap getFavicon ()

Gets the favicon for the current page. This is the favicon of the current page until WebViewClient.onReceivedIcon is called.

Returns
Bitmap the favicon for the current page or null if the page doesn't have one or if no page has been loaded

getHandler

Added in API level 1
public Handler getHandler ()

Returns
Handler A handler associated with the thread running the View. This handler can be used to pump events in the UI events queue.

getHitTestResult

Added in API level 1
public WebView.HitTestResult getHitTestResult ()

Gets a HitTestResult based on the current cursor node. If a HTML::a tag is found and the anchor has a non-JavaScript URL, the HitTestResult type is set to SRC_ANCHOR_TYPE and the URL is set in the "extra" field. If the anchor does not have a URL or if it is a JavaScript URL, the type will be UNKNOWN_TYPE and the URL has to be retrieved through requestFocusNodeHref(Message) asynchronously. If a HTML::img tag is found, the HitTestResult type is set to IMAGE_TYPE and the URL is set in the "extra" field. A type of SRC_IMAGE_ANCHOR_TYPE indicates an anchor with a URL that has an image as a child node. If a phone number is found, the HitTestResult type is set to PHONE_TYPE and the phone number is set in the "extra" field of HitTestResult. If a map address is found, the HitTestResult type is set to GEO_TYPE and the address is set in the "extra" field of HitTestResult. If an email address is found, the HitTestResult type is set to EMAIL_TYPE and the email is set in the "extra" field of HitTestResult. Otherwise, HitTestResult type is set to UNKNOWN_TYPE.

Returns
WebView.HitTestResult This value cannot be null.

getHttpAuthUsernamePassword

Added in API level 1
Deprecated in API level 26
public String[] getHttpAuthUsernamePassword (String host, 
                String realm)

This method was deprecated in API level 26.
Use WebViewDatabase#getHttpAuthUsernamePassword instead

Retrieves HTTP authentication credentials for a given host and realm from the WebViewDatabase instance.

Parameters
host String: the host to which the credentials apply

realm String: the realm to which the credentials apply

Returns
String[] the credentials as a String array, if found. The first element is the username and the second element is the password. null if no credentials are found.

getOriginalUrl

Added in API level 3
public String getOriginalUrl ()

Gets the original URL for the current page. This is not always the same as the URL passed to WebViewClient.onPageStarted because although the load for that URL has begun, the current page may not have changed. Also, there may have been redirects resulting in a different URL to that originally requested.

Returns
String the URL that was originally requested for the current page or null if no page has been loaded

getProgress

Added in API level 1
public int getProgress ()

Gets the progress for the current page.

Returns
int the progress for the current page between 0 and 100

getRendererPriorityWaivedWhenNotVisible

Added in API level 26
public boolean getRendererPriorityWaivedWhenNotVisible ()

Return whether this WebView requests a priority of RENDERER_PRIORITY_WAIVED when not visible.

Returns
boolean whether this WebView requests a priority of RENDERER_PRIORITY_WAIVED when not visible.

getRendererRequestedPriority

Added in API level 26
public int getRendererRequestedPriority ()

Get the requested renderer priority for this WebView.

Returns
int the requested renderer priority policy. Value is RENDERER_PRIORITY_WAIVED, RENDERER_PRIORITY_BOUND, or RENDERER_PRIORITY_IMPORTANT

getSafeBrowsingPrivacyPolicyUrl

Added in API level 27
public static Uri getSafeBrowsingPrivacyPolicyUrl ()

Returns a URL pointing to the privacy policy for Safe Browsing reporting.

Returns
Uri the url pointing to a privacy policy document which can be displayed to users. This value cannot be null.

getScale

Added in API level 1
Deprecated in API level 17
public float getScale ()

This method was deprecated in API level 17.
This method is prone to inaccuracy due to race conditions between the web rendering and UI threads; prefer WebViewClient#onScaleChanged.

Gets the current scale of this WebView.

Returns
float the current scale

getSettings

Added in API level 1
public WebSettings getSettings ()

Gets the WebSettings object used to control the settings for this WebView.

Returns
WebSettings a WebSettings object that can be used to control this WebView's settings This value cannot be null.

getTextClassifier

Added in API level 27
public TextClassifier getTextClassifier ()

Returns the TextClassifier used by this WebView. If no TextClassifier has been set, this WebView uses the default set by the system.

Returns
TextClassifier This value cannot be null.

getTitle

Added in API level 1
public String getTitle ()

Gets the title for the current page. This is the title of the current page until WebViewClient.onReceivedTitle is called.

Returns
String the title for the current page or null if no page has been loaded

getUrl

Added in API level 1
public String getUrl ()

Gets the URL for the current page. This is not always the same as the URL passed to WebViewClient.onPageStarted because although the load for that URL has begun, the current page may not have changed.

Returns
String the URL for the current page or null if no page has been loaded

getWebChromeClient

Added in API level 26
public WebChromeClient getWebChromeClient ()

Gets the chrome handler.

Returns
WebChromeClient the WebChromeClient, or null if not yet set

getWebViewClassLoader

Added in API level 28
public static ClassLoader getWebViewClassLoader ()

Returns the ClassLoader used to load internal WebView classes. This method is meant for use by the WebView Support Library, there is no reason to use this method otherwise.

Returns
ClassLoader This value cannot be null.

getWebViewClient

Added in API level 26
public WebViewClient getWebViewClient ()

Gets the WebViewClient.

Returns
WebViewClient the WebViewClient, or a default client if not yet set This value cannot be null.

getWebViewLooper

Added in API level 28
public Looper getWebViewLooper ()

Returns the Looper corresponding to the thread on which WebView calls must be made.

Returns
Looper This value cannot be null.

getWebViewRenderProcess

Added in API level 29
public WebViewRenderProcess getWebViewRenderProcess ()

Gets a handle to the WebView renderer process associated with this WebView.

In Build.VERSION_CODES.O and above, WebView may run in "multiprocess" mode. In multiprocess mode, rendering of web content is performed by a sandboxed renderer process separate to the application process. This renderer process may be shared with other WebViews in the application, but is not shared with other application processes.

If WebView is running in multiprocess mode, this method returns a handle to the renderer process associated with the WebView, which can be used to control the renderer process.

Returns
WebViewRenderProcess the WebViewRenderProcess renderer handle associated with this WebView, or null if WebView is not runing in multiprocess mode.

getWebViewRenderProcessClient

Added in API level 29
public WebViewRenderProcessClient getWebViewRenderProcessClient ()

Gets the renderer client object associated with this WebView.

Returns
WebViewRenderProcessClient the WebViewRenderProcessClient object associated with this WebView, if one has been set via setWebViewRenderProcessClient(android.webkit.WebViewRenderProcessClient) or null otherwise.

goBack

Added in API level 1
public void goBack ()

Goes back in the history of this WebView.

goBackOrForward

Added in API level 1
public void goBackOrForward (int steps)

Goes to the history item that is the number of steps away from the current item. Steps is negative if backward and positive if forward.

Parameters
steps int: the number of steps to take back or forward in the back forward list

goForward

Added in API level 1
public void goForward ()

Goes forward in the history of this WebView.

invokeZoomPicker

Added in API level 1
public void invokeZoomPicker ()

Invokes the graphical zoom picker widget for this WebView. This will result in the zoom widget appearing on the screen to control the zoom level of this WebView.

isPrivateBrowsingEnabled

Added in API level 11
public boolean isPrivateBrowsingEnabled ()

Gets whether private browsing is enabled in this WebView.

Returns
boolean

isVisibleToUserForAutofill

Added in API level 28
public boolean isVisibleToUserForAutofill (int virtualId)

Computes whether this virtual autofill view is visible to the user.

Note: By default it returns true, but views providing a virtual hierarchy view must override it.

Parameters
virtualId int

Returns
boolean Whether the view is visible on the screen.

loadData

Added in API level 1
public void loadData (String data, 
                String mimeType, 
                String encoding)

Loads the given data into this WebView using a 'data' scheme URL.

Note that JavaScript's same origin policy means that script running in a page loaded using this method will be unable to access content loaded using any scheme other than 'data', including 'http(s)'. To avoid this restriction, use loadDataWithBaseURL() with an appropriate base URL.

The encoding parameter specifies whether the data is base64 or URL encoded. If the data is base64 encoded, the value of the encoding parameter must be "base64". HTML can be encoded with Base64.encodeToString(byte[], int) like so:

 String unencodedHtml =
     "<html><body>'%28' is the code for '('</body></html>";
 String encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(), Base64.NO_PADDING);
 webView.loadData(encodedHtml, "text/html", "base64");
 

For all other values of encoding (including null) it is assumed that the data uses ASCII encoding for octets inside the range of safe URL characters and use the standard %xx hex encoding of URLs for octets outside that range. See RFC 3986 for more information. Applications targeting Build.VERSION_CODES.Q or later must either use base64 or encode any # characters in the content as %23, otherwise they will be treated as the end of the content and the remaining text used as a document fragment identifier.

The mimeType parameter specifies the format of the data. If WebView can't handle the specified MIME type, it will download the data. If null, defaults to 'text/html'.

The 'data' scheme URL formed by this method uses the default US-ASCII charset. If you need to set a different charset, you should form a 'data' scheme URL which explicitly specifies a charset parameter in the mediatype portion of the URL and call loadUrl(java.lang.String) instead. Note that the charset obtained from the mediatype portion of a data URL always overrides that specified in the HTML or XML document itself.

Content loaded using this method will have a window.origin value of "null". This must not be considered to be a trusted origin by the application or by any JavaScript code running inside the WebView (for example, event sources in DOM event handlers or web messages), because malicious content can also create frames with a null origin. If you need to identify the main frame's origin in a trustworthy way, you should use loadDataWithBaseURL() with a valid HTTP or HTTPS base URL to set the origin.

Parameters
data String: a String of data in the given encoding This value cannot be null.

mimeType String: the MIME type of the data, e.g. 'text/html'. This value may be null.

encoding String: the encoding of the data This value may be null.

loadDataWithBaseURL

Added in API level 1
public void loadDataWithBaseURL (String baseUrl, 
                String data, 
                String mimeType, 
                String encoding, 
                String historyUrl)

Loads the given data into this WebView, using baseUrl as the base URL for the content. The base URL is used both to resolve relative URLs and when applying JavaScript's same origin policy. The historyUrl is used for the history entry.

The mimeType parameter specifies the format of the data. If WebView can't handle the specified MIME type, it will download the data. If null, defaults to 'text/html'.

Note that content specified in this way can access local device files (via 'file' scheme URLs) only if baseUrl specifies a scheme other than 'http', 'https', 'ftp', 'ftps', 'about' or 'javascript'.

If the base URL uses the data scheme, this method is equivalent to calling loadData() and the historyUrl is ignored, and the data will be treated as part of a data: URL, including the requirement that the content be URL-encoded or base64 encoded. If the base URL uses any other scheme, then the data will be loaded into the WebView as a plain string (i.e. not part of a data URL) and any URL-encoded entities in the string will not be decoded.

Note that the baseUrl is sent in the 'Referer' HTTP header when requesting subresources (images, etc.) of the page loaded using this method.

If a valid HTTP or HTTPS base URL is not specified in baseUrl, then content loaded using this method will have a window.origin value of "null". This must not be considered to be a trusted origin by the application or by any JavaScript code running inside the WebView (for example, event sources in DOM event handlers or web messages), because malicious content can also create frames with a null origin. If you need to identify the main frame's origin in a trustworthy way, you should use a valid HTTP or HTTPS base URL to set the origin.

Parameters
baseUrl String: the URL to use as the page's base URL. If null defaults to 'about:blank'.

data String: a String of data in the given encoding This value cannot be null.

mimeType String: the MIME type of the data, e.g. 'text/html'. This value may be null.

encoding String: the encoding of the data This value may be null.

historyUrl String: the URL to use as the history entry. If null defaults to 'about:blank'. If non-null, this must be a valid URL.

loadUrl

Added in API level 1
public void loadUrl (String url)

Loads the given URL.

Also see compatibility note on evaluateJavascript(String, ValueCallback).

Parameters
url String: the URL of the resource to load This value cannot be null.

loadUrl

Added in API level 8
public void loadUrl (String url, 
                Map<StringString> additionalHttpHeaders)

Loads the given URL with additional HTTP headers, specified as a map from name to value. Note that if this map contains any of the headers that are set by default by this WebView, such as those controlling caching, accept types or the User-Agent, their values may be overridden by this WebView's defaults.

Some older WebView implementations require additionalHttpHeaders to be mutable.

Also see compatibility note on evaluateJavascript(String, ValueCallback).

Parameters
url String: the URL of the resource to load This value cannot be null.

additionalHttpHeaders Map: map with additional headers This value cannot be null.

onApplyWindowInsets

Added in API level 20
public WindowInsets onApplyWindowInsets (WindowInsets insets)

Called when the view should apply WindowInsets according to its internal policy.

This method should be overridden by views that wish to apply a policy different from or in addition to the default behavior. Clients that wish to force a view subtree to apply insets should call dispatchApplyWindowInsets(android.view.WindowInsets).

Clients may supply an OnApplyWindowInsetsListener to a view. If one is set it will be called during dispatch instead of this method. The listener may optionally call this method from its own implementation if it wishes to apply the view's default insets policy in addition to its own.

Implementations of this method should either return the insets parameter unchanged or a new WindowInsets cloned from the supplied insets with any insets consumed that this view applied itself. This allows new inset types added in future platform versions to pass through existing implementations unchanged without being erroneously consumed.

By default if a view's fitsSystemWindows property is set then the view will consume the system window insets and apply them as padding for the view.

Parameters
insets WindowInsets: Insets to apply

Returns
WindowInsets The supplied insets with any applied insets consumed

onCheckIsTextEditor

Added in API level 3
public boolean onCheckIsTextEditor ()

Check whether the called view is a text editor, in which case it would make sense to automatically display a soft input window for it. Subclasses should override this if they implement onCreateInputConnection(android.view.inputmethod.EditorInfo) to return true if a call on that method would return a non-null InputConnection, and they are really a first-class editor that the user would normally start typing on when the go into a window containing your view.

The default implementation always returns false. This does not mean that its onCreateInputConnection(android.view.inputmethod.EditorInfo) will not be called or the user can not otherwise perform edits on your view; it is just a hint to the system that this is not the primary purpose of this view.

Returns
boolean Returns true if this view is a text editor, else false.

onChildViewAdded

Added in API level 1
public void onChildViewAdded (View parent, 
                View child)

This method is deprecated.
WebView no longer needs to implement ViewGroup.OnHierarchyChangeListener. This method does nothing now.

Called when a new child is added to a parent view.

Parameters
parent View: the view in which a child was added

child View: the new child view added in the hierarchy

onChildViewRemoved

Added in API level 1
public void onChildViewRemoved (View p, 
                View child)

This method is deprecated.
WebView no longer needs to implement ViewGroup.OnHierarchyChangeListener. This method does nothing now.

Called when a child is removed from a parent view.

Parameters
p View: the view from which the child was removed

child View: the child removed from the hierarchy

onCreateInputConnection

Added in API level 3
public InputConnection onCreateInputConnection (EditorInfo outAttrs)

Creates a new InputConnection for an InputMethod to interact with the WebView. This is similar to View#onCreateInputConnection but note that WebView calls InputConnection methods on a thread other than the UI thread. If these methods are overridden, then the overriding methods should respect thread restrictions when calling View methods or accessing data.

Parameters
outAttrs EditorInfo: Fill in with attribute information about the connection.

Returns
InputConnection

onCreateVirtualViewTranslationRequests

Added in API level 31
public void onCreateVirtualViewTranslationRequests (long[] virtualIds, 
                int[] supportedFormats, 
                Consumer<ViewTranslationRequest> requestsCollector)

Collects ViewTranslationRequests which represents the content to be translated for the virtual views in the host view. This is called if this view returned a virtual view structure from onProvideContentCaptureStructure(ViewStructure, int) and the system determined that those virtual views were relevant for translation.

The default implementation does nothing.

Parameters
virtualIds long: This value cannot be null.

supportedFormats int: This value cannot be null. Value is TranslationSpec.DATA_FORMAT_TEXT

requestsCollector Consumer: This value cannot be null.

Returns
void This value may be null.

onDragEvent

Added in API level 11
public boolean onDragEvent (DragEvent event)

Handles drag events sent by the system following a call to startDragAndDrop().

The system calls this method and passes a DragEvent object in response to drag and drop events. This method can then call DragEvent#getAction() to determine the state of the drag and drop operation.

The default implementation returns false unless an OnReceiveContentListener has been set for this view (see setOnReceiveContentListener(String, OnReceiveContentListener)), in which case the default implementation does the following:

Parameters
event DragEvent: The DragEvent object sent by the system. The DragEvent#getAction() method returns an action type constant that indicates the type of drag event represented by this object.

Returns
boolean true if the method successfully handled the drag event, otherwise false.

The method must return true in response to an ACTION_DRAG_STARTED action type to continue to receive drag events for the current drag and drop operation.

The method should return true in response to an ACTION_DROP action type if the dropped data was consumed (at least partially); false, if none of the data was consumed.

For all other events, the return value is false.

onFinishTemporaryDetach

Added in API level 3
public void onFinishTemporaryDetach ()

Called after onStartTemporaryDetach() when the container is done changing the view.

onGenericMotionEvent

Added in API level 12
public boolean onGenericMotionEvent (MotionEvent event)

Implement this method to handle generic motion events.

Generic motion events describe joystick movements, hover events from mouse or stylus devices, trackpad touches, scroll wheel movements and other motion events not handled by onTouchEvent(android.view.MotionEvent) or onTrackballEvent(android.view.MotionEvent). The source of the motion event specifies the class of input that was received. Implementations of this method must examine the bits in the source before processing the event. The following code example shows how this is done.

Generic motion events with source class InputDevice#SOURCE_CLASS_POINTER are delivered to the view under the pointer. All other generic motion events are delivered to the focused view.

 public boolean onGenericMotionEvent(MotionEvent event) {
     if (event.isFromSource(InputDevice.SOURCE_CLASS_JOYSTICK)) {
         if (event.getAction() == MotionEvent.ACTION_MOVE) {
             // process the joystick movement...
             return true;
         }
     }
     if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
         switch (event.getAction()) {
             case MotionEvent.ACTION_HOVER_MOVE:
                 // process the hover movement...
                 return true;
             case MotionEvent.ACTION_SCROLL:
                 // process the scroll wheel movement...
                 return true;
         }
     }
     return super.onGenericMotionEvent(event);
 }

Parameters
event MotionEvent: The generic motion event being processed.

Returns
boolean True if the event was handled, false otherwise.

onGlobalFocusChanged

Added in API level 1
public void onGlobalFocusChanged (View oldFocus, 
                View newFocus)

This method is deprecated.
WebView should not have implemented ViewTreeObserver.OnGlobalFocusChangeListener. This method does nothing now.

Callback method to be invoked when the focus changes in the view tree. When the view tree transitions from touch mode to non-touch mode, oldFocus is null. When the view tree transitions from non-touch mode to touch mode, newFocus is null. When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.

Parameters
oldFocus View: The previously focused view, if any.

newFocus View: The newly focused View, if any.

onHoverEvent

Added in API level 14
public boolean onHoverEvent (MotionEvent event)

Implement this method to handle hover events.

This method is called whenever a pointer is hovering into, over, or out of the bounds of a view and the view is not currently being touched. Hover events are represented as pointer events with action MotionEvent#ACTION_HOVER_ENTER, MotionEvent#ACTION_HOVER_MOVE, or MotionEvent#ACTION_HOVER_EXIT.

  • The view receives a hover event with action MotionEvent#ACTION_HOVER_ENTER when the pointer enters the bounds of the view.
  • The view receives a hover event with action MotionEvent#ACTION_HOVER_MOVE when the pointer has already entered the bounds of the view and has moved.
  • The view receives a hover event with action MotionEvent#ACTION_HOVER_EXIT when the pointer has exited the bounds of the view or when the pointer is about to go down due to a button click, tap, or similar user action that causes the view to be touched.

The view should implement this method to return true to indicate that it is handling the hover event, such as by changing its drawable state.

The default implementation calls setHovered(boolean) to update the hovered state of the view when a hover enter or hover exit event is received, if the view is enabled and is clickable. The default implementation also sends hover accessibility events.

Parameters
event MotionEvent: The motion event that describes the hover.

Returns
boolean True if the view handled the hover event.

onKeyDown

Added in API level 1
public boolean onKeyDown (int keyCode, 
                KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view when KeyEvent#KEYCODE_DPAD_CENTER or KeyEvent#KEYCODE_ENTER is released, if the view is enabled and clickable.

Key presses in software keyboards will generally NOT trigger this listener, although some may elect to do so in some situations. Do not rely on this to catch software key presses.

Parameters
keyCode int: a key code that represents the button pressed, from KeyEvent

event KeyEvent: the KeyEvent object that defines the button action

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyMultiple

Added in API level 1
public boolean onKeyMultiple (int keyCode, 
                int repeatCount, 
                KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).

Key presses in software keyboards will generally NOT trigger this listener, although some may elect to do so in some situations. Do not rely on this to catch software key presses.

Parameters
keyCode int: A key code that represents the button pressed, from KeyEvent.

repeatCount int: The number of times the action was made.

event KeyEvent: The KeyEvent object that defines the button action.

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyUp

Added in API level 1
public boolean onKeyUp (int keyCode, 
                KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyUp(): perform clicking of the view when KeyEvent#KEYCODE_DPAD_CENTER, KeyEvent#KEYCODE_ENTER or KeyEvent#KEYCODE_SPACE is released.

Key presses in software keyboards will generally NOT trigger this listener, although some may elect to do so in some situations. Do not rely on this to catch software key presses.

Parameters
keyCode int: A key code that represents the button pressed, from KeyEvent.

event KeyEvent: The KeyEvent object that defines the button action.

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onPause

Added in API level 11
public void onPause ()

Does a best-effort attempt to pause any processing that can be paused safely, such as animations and geolocation. Note that this call does not pause JavaScript. To pause JavaScript globally, use pauseTimers(). To resume WebView, call onResume().

onProvideAutofillVirtualStructure

Added in API level 26
public void onProvideAutofillVirtualStructure (ViewStructure structure, 
                int flags)

Populates a ViewStructure containing virtual children to fullfil an autofill request.

This method should be used when the view manages a virtual structure under this view. For example, a view that draws input fields using draw(android.graphics.Canvas).

When implementing this method, subclasses must follow the rules below:

Views with virtual children support the Autofill Framework mainly by:

  • Providing the metadata defining what the virtual children mean and how they can be autofilled.
  • Implementing the methods that autofill the virtual children.

This method is responsible for the former; autofill(android.util.SparseArray) is responsible for the latter.

The ViewStructure traditionally represents a View, while for web pages it represent HTML nodes. Hence, it's necessary to "map" the HTML properties in a way that is understood by the AutofillService implementations:

  1. Only the HTML nodes inside a FORM are generated.
  2. The source of the HTML is set using ViewStructure#setWebDomain(String) in the node representing the WebView.
  3. If a web page has multiple FORMs, only the data for the current form is represented—if the user taps a field from another form, then the current autofill context is canceled (by calling AutofillManager.cancel() and a new context is created for that FORM.
  4. Similarly, if the page has IFRAME nodes, they are not initially represented in the view structure until the user taps a field from a FORM inside the IFRAME, in which case it would be treated the same way as multiple forms described above, except that the web domain of the FORM contains the src attribute from the IFRAME node.
  5. The W3C autofill field (autocomplete tag attribute) maps to ViewStructure#setAutofillHints(String[]).
  6. If the view is editable, the ViewStructure#setAutofillType(int) and ViewStructure#setAutofillValue(AutofillValue) must be set.
  7. The placeholder attribute maps to ViewStructure#setHint(CharSequence).
  8. Other HTML attributes can be represented through ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo).

If the WebView implementation can determine that the value of a field was set statically (for example, not through Javascript), it should also call structure.setDataIsSensitive(false).

For example, an HTML form with 2 fields for username and password:

    <label>Username:</label>
    <input type="text" name="username" id="user" value="Type your username" autocomplete="username" placeholder="Email or username">
    <label>Password:</label>
    <input type="password" name="password" id="pass" autocomplete="current-password" placeholder="Password">
 

Would map to:

     int index = structure.addChildCount(2);
     ViewStructure username = structure.newChild(index);
     username.setAutofillId(structure.getAutofillId(), 1); // id 1 - first child
     username.setAutofillHints("username");
     username.setHtmlInfo(username.newHtmlInfoBuilder("input")
         .addAttribute("type", "text")
         .addAttribute("name", "username")
         .addAttribute("label", "Username:")
         .build());
     username.setHint("Email or username");
     username.setAutofillType(View.AUTOFILL_TYPE_TEXT);
     username.setAutofillValue(AutofillValue.forText("Type your username"));
     // Value of the field is not sensitive because it was created statically and not changed.
     username.setDataIsSensitive(false);

     ViewStructure password = structure.newChild(index + 1);
     username.setAutofillId(structure, 2); // id 2 - second child
     password.setAutofillHints("current-password");
     password.setHtmlInfo(password.newHtmlInfoBuilder("input")
         .addAttribute("type", "password")
         .addAttribute("name", "password")
         .addAttribute("label", "Password:")
         .build());
     password.setHint("Password");
     password.setAutofillType(View.AUTOFILL_TYPE_TEXT);
 

Parameters
structure ViewStructure: fill in with virtual children data for autofill purposes.

flags int: optional flags.

onProvideContentCaptureStructure

Added in API level 30
public void onProvideContentCaptureStructure (ViewStructure structure, 
                int flags)

Populates a ViewStructure for content capture.

This method is called after a view that is eligible for content capture (for example, if it isImportantForContentCapture(), an intelligence service is enabled for the user, and the activity rendering the view is enabled for content capture) is laid out and is visible. The populated structure is then passed to the service through ContentCaptureSession#notifyViewAppeared(ViewStructure).

The default implementation of this method sets the most relevant properties based on related View methods, and views in the standard Android widgets library also override it to set their relevant properties. Therefore, if overriding this method, it is recommended to call super.onProvideContentCaptureStructure().

Note: views that manage a virtual structure under this view must populate just the node representing this view and return right away, then asynchronously report (not necessarily in the UI thread) when the children nodes appear, disappear or have their text changed by calling ContentCaptureSession#notifyViewAppeared(ViewStructure), ContentCaptureSession#notifyViewDisappeared(AutofillId), and ContentCaptureSession#notifyViewTextChanged(AutofillId, CharSequence) respectively. The structure for a child must be created using ContentCaptureSession#newVirtualViewStructure(AutofillId, long), and the autofillId for a child can be obtained either through childStructure.getAutofillId() or ContentCaptureSession#newAutofillId(AutofillId, long).

When the virtual view hierarchy represents a web page, you should also:

Note: the following methods of the structure will be ignored:

Parameters
structure ViewStructure: This value cannot be null.

flags int

onProvideVirtualStructure

Added in API level 23
public void onProvideVirtualStructure (ViewStructure structure)

Called when assist structure is being retrieved from a view as part of Activity.onProvideAssistData to generate additional virtual structure under this view. The default implementation uses getAccessibilityNodeProvider() to try to generate this from the view's virtual accessibility nodes, if any. You can override this for a more optimal implementation providing this data.

Parameters
structure ViewStructure

onResolvePointerIcon

Added in API level 24
public PointerIcon onResolvePointerIcon (MotionEvent event, 
                int pointerIndex)

Resolve the pointer icon that should be used for specified pointer in the motion event. The default implementation will resolve the pointer icon to one set using setPointerIcon(android.view.PointerIcon) for mouse devices. Subclasses may override this to customize the icon for the given pointer. For example, the pointer icon for a stylus pointer can be resolved in the following way:

 @Override
 public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
     final int toolType = event.getToolType(pointerIndex);
     if (!event.isFromSource(InputDevice.SOURCE_MOUSE)
             && event.isFromSource(InputDevice.SOURCE_STYLUS)
             && (toolType == MotionEvent.TOOL_TYPE_STYLUS
                     || toolType == MotionEvent.TOOL_TYPE_ERASER)) {
         // Show this pointer icon only if this pointer is a stylus.
         return PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_WAIT);
     }
     // Use the default logic for determining the pointer icon for other non-stylus pointers,
     // like for the mouse cursor.
     return super.onResolvePointerIcon(event, pointerIndex);
 }
 

Parameters
event MotionEvent: This value cannot be null.

pointerIndex int: The index of the pointer in event for which to retrieve the PointerIcon. This will be between 0 and MotionEvent#getPointerCount().

Returns
PointerIcon This value may be null.

onResume

Added in API level 11
public void onResume ()

Resumes a WebView after a previous call to onPause().

onStartTemporaryDetach

Added in API level 3
public void onStartTemporaryDetach ()

This is called when a container is going to temporarily detach a child, with ViewGroup.detachViewFromParent. It will either be followed by onFinishTemporaryDetach() or onDetachedFromWindow() when the container is done.

onTouchEvent

Added in API level 1
public boolean onTouchEvent (MotionEvent event)

Implement this method to handle touch screen motion events.

If this method is used to detect click actions, it is recommended that the actions be performed by implementing and calling performClick(). This will ensure consistent system behavior, including:

  • obeying click sound preferences
  • dispatching OnClickListener calls
  • handling ACTION_CLICK when accessibility features are enabled

Parameters
event MotionEvent: The motion event.

Returns
boolean True if the event was handled, false otherwise.

onTrackballEvent

Added in API level 1
public boolean onTrackballEvent (MotionEvent event)

Implement this method to handle trackball motion events.

The relative movement of the trackball since the last event can be retrieve with MotionEvent.getX() and MotionEvent.getY(). These are normalized so that a movement of 1 corresponds to the user pressing one DPAD key (so they will often be fractional values, representing the more fine-grained movement information available from a trackball).

Parameters
event MotionEvent: The motion event.

Returns
boolean True if the event was handled, false otherwise.

onVirtualViewTranslationResponses

Added in API level 31
public void onVirtualViewTranslationResponses (LongSparseArray<ViewTranslationResponse> response)

Called when the content from View#onCreateVirtualViewTranslationRequests had been translated by the TranslationService.

The default implementation does nothing.

Parameters
response LongSparseArray: This value cannot be null.

onWindowFocusChanged

Added in API level 1
public void onWindowFocusChanged (boolean hasWindowFocus)

Called when the window containing this view gains or loses focus. Note that this is separate from view focus: to receive key events, both your view and its window must have focus. If a window is displayed on top of yours that takes input focus, then your own window will lose focus but the view focus will remain unchanged.

Parameters
hasWindowFocus boolean: True if the window containing this view now has focus, false otherwise.

overlayHorizontalScrollbar

Added in API level 1
Deprecated in API level 23
public boolean overlayHorizontalScrollbar ()

This method was deprecated in API level 23.
This method is now obsolete.

Gets whether horizontal scrollbar has overlay style.

Returns
boolean true

overlayVerticalScrollbar

Added in API level 1
Deprecated in API level 23
public boolean overlayVerticalScrollbar ()

This method was deprecated in API level 23.
This method is now obsolete.

Gets whether vertical scrollbar has overlay style.

Returns
boolean false

pageDown

Added in API level 1
public boolean pageDown (boolean bottom)

Scrolls the contents of this WebView down by half the page size.

Parameters
bottom boolean: true to jump to bottom of page

Returns
boolean true if the page was scrolled

pageUp

Added in API level 1
public boolean pageUp (boolean top)

Scrolls the contents of this WebView up by half the view size.

Parameters
top boolean: true to jump to the top of the page

Returns
boolean true if the page was scrolled

pauseTimers

Added in API level 1
public void pauseTimers ()

Pauses all layout, parsing, and JavaScript timers for all WebViews. This is a global requests, not restricted to just this WebView. This can be useful if the application has been paused.

performLongClick

Added in API level 1
public boolean performLongClick ()

Calls this view's OnLongClickListener, if it is defined. Invokes the context menu if the OnLongClickListener did not consume the event.

Returns
boolean true if one of the above receivers consumed the event, false otherwise

postUrl

Added in API level 5
public void postUrl (String url, 
                byte[] postData)

Loads the URL with postData using "POST" method into this WebView. If url is not a network URL, it will be loaded with loadUrl(java.lang.String) instead, ignoring the postData param.

Parameters
url String: the URL of the resource to load This value cannot be null.

postData byte: the data will be passed to "POST" request, which must be be "application/x-www-form-urlencoded" encoded. This value cannot be null.

postVisualStateCallback

Added in API level 23
public void postVisualStateCallback (long requestId, 
                WebView.VisualStateCallback callback)

Posts a VisualStateCallback, which will be called when the current state of the WebView is ready to be drawn.

Because updates to the DOM are processed asynchronously, updates to the DOM may not immediately be reflected visually by subsequent WebView#onDraw invocations. The VisualStateCallback provides a mechanism to notify the caller when the contents of the DOM at the current time are ready to be drawn the next time the WebView draws.

The next draw after the callback completes is guaranteed to reflect all the updates to the DOM up to the point at which the VisualStateCallback was posted, but it may also contain updates applied after the callback was posted.

The state of the DOM covered by this API includes the following:

  • primitive HTML elements (div, img, span, etc..)
  • images
  • CSS animations
  • WebGL
  • canvas
It does not include the state of:
  • the video tag

To guarantee that the WebView will successfully render the first frame after the VisualStateCallback#onComplete method has been called a set of conditions must be met:

When using this API it is also recommended to enable pre-rasterization if the WebView is off screen to avoid flickering. See WebSettings#setOffscreenPreRaster for more details and do consider its caveats.

Parameters
requestId long: An id that will be returned in the callback to allow callers to match requests with callbacks.

callback WebView.VisualStateCallback: The callback to be invoked. This value cannot be null.

postWebMessage

Added in API level 23
public void postWebMessage (WebMessage message, 
                Uri targetOrigin)

Post a message to main frame. The embedded application can restrict the messages to a certain target origin. See HTML5 spec for how target origin can be used.

A target origin can be set as a wildcard ("*"). However this is not recommended. See the page above for security issues.

Content loaded via loadData(java.lang.String, java.lang.String, java.lang.String) will not have a valid origin, and thus cannot be sent messages securely. If you need to send messages using this function, you should use loadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) with a valid HTTP or HTTPS baseUrl to define a valid origin that can be used for messaging.

Parameters
message WebMessage: the WebMessage This value cannot be null.

targetOrigin Uri: the target origin. This value cannot be null.

reload

Added in API level 1
public void reload ()

Reloads the current URL.

removeJavascriptInterface

Added in API level 11
public void removeJavascriptInterface (String name)

Removes a previously injected Java object from this WebView. Note that the removal will not be reflected in JavaScript until the page is next (re)loaded. See addJavascriptInterface(Object, String).

Parameters
name String: the name used to expose the object in JavaScript This value cannot be null.

requestChildRectangleOnScreen

Added in API level 1
public boolean requestChildRectangleOnScreen (View child, 
                Rect rect, 
                boolean immediate)

Called when a child of this group wants a particular rectangle to be positioned onto the screen. ViewGroups overriding this can trust that:

  • child will be a direct child of this group
  • rectangle will be in the child's content coordinates

ViewGroups overriding this should uphold the contract:

  • nothing will change if the rectangle is already visible
  • the view port will be scrolled only just enough to make the rectangle visible
    • Parameters
      child View: The direct child making the request. This value cannot be null.

      rect Rect: The rectangle in the child's coordinates the child wishes to be on the screen.

      immediate boolean: True to forbid animated or delayed scrolling, false otherwise

      Returns
      boolean Whether the group scrolled to handle the operation

requestFocus

Added in API level 1
public boolean requestFocus (int direction, 
                Rect previouslyFocusedRect)

Call this to try to give focus to a specific view or to one of its descendants and give it hints about the direction and a specific rectangle that the focus is coming from. The rectangle can help give larger views a finer grained hint about where focus is coming from, and therefore, where to show selection, or forward focus change internally. A view will not actually take focus if it is not focusable (isFocusable() returns false), or if it is focusable and it is not focusable in touch mode (isFocusableInTouchMode()) while the device is in touch mode. A View will not take focus if it is not visible. A View will not take focus if one of its parents has ViewGroup.getDescendantFocusability() equal to ViewGroup#FOCUS_BLOCK_DESCENDANTS. See also focusSearch(int), which is what you call to say that you have focus, and you want your parent to look for the next one. You may wish to override this method if your custom View has an internal View that it wishes to forward the request to. Looks for a view to give focus to respecting the setting specified by getDescendantFocusability(). Uses onRequestFocusInDescendants(int, android.graphics.Rect) to find focus within the children of this group when appropriate.

Parameters
direction int: One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT

previouslyFocusedRect Rect: The rectangle (in this View's coordinate system) to give a finer grained hint about where focus is coming from. May be null if there is no hint.

Returns
boolean Whether this view or one of its descendants actually took focus.

requestFocusNodeHref

Added in API level 1
public void requestFocusNodeHref (Message hrefMsg)

Requests the anchor or image element URL at the last tapped point. If hrefMsg is null, this method returns immediately and does not dispatch hrefMsg to its target. If the tapped point hits an image, an anchor, or an image in an anchor, the message associates strings in named keys in its data. The value paired with the key may be an empty string.

Parameters
hrefMsg Message: the message to be dispatched with the result of the request. The message data contains three keys. "url" returns the anchor's href attribute. "title" returns the anchor's text. "src" returns the image's src attribute. This value may be null.

requestImageRef

Added in API level 1
public void requestImageRef (Message msg)

Requests the URL of the image last touched by the user. msg will be sent to its target with a String representing the URL as its object.

Parameters
msg Message: the message to be dispatched with the result of the request as the data member with "url" as key. The result can be null.

restoreState

Added in API level 1
public WebBackForwardList restoreState (Bundle inState)

Restores the state of this WebView from the given Bundle. This method is intended for use in Activity.onRestoreInstanceState(Bundle) and should be called to restore the state of this WebView. If it is called after this WebView has had a chance to build state (load pages, create a back/forward list, etc.) there may be undesirable side-effects. Please note that this method no longer restores the display data for this WebView.

Parameters
inState Bundle: the incoming Bundle of state This value cannot be null.

Returns
WebBackForwardList the restored back/forward list or null if restoreState failed

resumeTimers

Added in API level 1
public void resumeTimers ()

Resumes all layout, parsing, and JavaScript timers for all WebViews. This will resume dispatching all timers.

savePassword

Added in API level 1
Deprecated in API level 18
public void savePassword (String host, 
                String username, 
                String password)

This method was deprecated in API level 18.
Saving passwords in WebView will not be supported in future versions.

Sets a username and password pair for the specified host. This data is used by the WebView to autocomplete username and password fields in web forms. Note that this is unrelated to the credentials used for HTTP authentication.

Parameters
host String: the host that required the credentials

username String: the username for the given host

password String: the password for the given host

saveState

Added in API level 1
public WebBackForwardList saveState (Bundle outState)

Saves the state of this WebView used in Activity.onSaveInstanceState(Bundle). Please note that this method no longer stores the display data for this WebView. The previous behavior could potentially leak files if restoreState(Bundle) was never called.

Parameters
outState Bundle: the Bundle to store this WebView's state This value cannot be null.

Returns
WebBackForwardList the same copy of the back/forward list used to save the state, null if the method fails.

saveWebArchive

Added in API level 11
public void saveWebArchive (String filename)

Saves the current view as a web archive.

Parameters
filename String: the filename where the archive should be placed This value cannot be null.

saveWebArchive

Added in API level 11
public void saveWebArchive (String basename, 
                boolean autoname, 
                ValueCallback<String> callback)

Saves the current view as a web archive.

Parameters
basename String: the filename where the archive should be placed This value cannot be null.

autoname boolean: if false, takes basename to be a file. If true, basename is assumed to be a directory in which a filename will be chosen according to the URL of the current page.

callback ValueCallback: called after the web archive has been saved. The parameter for onReceiveValue will either be the filename under which the file was saved, or null if saving the file failed.

setBackgroundColor

Added in API level 1
public void setBackgroundColor (int color)

Sets the background color for this view.

Parameters
color int: the color of the background

setCertificate

Added in API level 1
Deprecated in API level 17
public void setCertificate (SslCertificate certificate)

This method was deprecated in API level 17.
Calling this function has no useful effect, and will be ignored in future releases.

Sets the SSL certificate for the main top-level page.

Parameters
certificate SslCertificate

setDataDirectorySuffix

Added in API level 28
public static void setDataDirectorySuffix (String suffix)

Define the directory used to store WebView data for the current process. The provided suffix will be used when constructing data and cache directory paths. If this API is not called, no suffix will be used. Each directory can be used by only one process in the application. If more than one process in an app wishes to use WebView, only one process can use the default directory, and other processes must call this API to define a unique suffix.

This means that different processes in the same application cannot directly share WebView-related data, since the data directories must be distinct. Applications that use this API may have to explicitly pass data between processes. For example, login cookies may have to be copied from one process's cookie jar to the other using CookieManager if both processes' WebViews are intended to be logged in.

Most applications should simply ensure that all components of the app that rely on WebView are in the same process, to avoid needing multiple data directories. The disableWebView() method can be used to ensure that the other processes do not use WebView by accident in this case.

This API must be called before any instances of WebView are created in this process and before any other methods in the android.webkit package are called by this process.

Parameters
suffix String: The directory name suffix to be used for the current process. Must not contain a path separator. This value cannot be null.

Throws
IllegalStateException if WebView has already been initialized in the current process.
IllegalArgumentException if the suffix contains a path separator.

setDownloadListener

Added in API level 1
public void setDownloadListener (DownloadListener listener)

Registers the interface to be used when content can not be handled by the rendering engine, and should be downloaded instead. This will replace the current handler.

Parameters
listener DownloadListener: an implementation of DownloadListener This value may be null.

setFindListener

Added in API level 16
public void setFindListener (WebView.FindListener listener)

Registers the listener to be notified as find-on-page operations progress. This will replace the current listener.

Parameters
listener WebView.FindListener: an implementation of FindListener This value may be null.

setHorizontalScrollbarOverlay

Added in API level 1
Deprecated in API level 23
public void setHorizontalScrollbarOverlay (boolean overlay)

This method was deprecated in API level 23.
This method has no effect.

Specifies whether the horizontal scrollbar has overlay style.

Parameters
overlay boolean: true if horizontal scrollbar should have overlay style

setHttpAuthUsernamePassword

Added in API level 1
Deprecated in API level 26
public void setHttpAuthUsernamePassword (String host, 
                String realm, 
                String username, 
                String password)

This method was deprecated in API level 26.
Use WebViewDatabase#setHttpAuthUsernamePassword instead

Stores HTTP authentication credentials for a given host and realm to the WebViewDatabase instance.

Parameters
host String: the host to which the credentials apply

realm String: the realm to which the credentials apply

username String: the username

password String: the password

setInitialScale

Added in API level 1
public void setInitialScale (int scaleInPercent)

Sets the initial scale for this WebView. 0 means default. The behavior for the default scale depends on the state of WebSettings#getUseWideViewPort() and WebSettings#getLoadWithOverviewMode(). If the content fits into the WebView control by width, then the zoom is set to 100%. For wide content, the behavior depends on the state of WebSettings#getLoadWithOverviewMode(). If its value is true, the content will be zoomed out to be fit by width into the WebView control, otherwise not. If initial scale is greater than 0, WebView starts with this value as initial scale. Please note that unlike the scale properties in the viewport meta tag, this method doesn't take the screen density into account.

Parameters
scaleInPercent int: the initial scale in percent

setLayerType

Added in API level 11
public void setLayerType (int layerType, 
                Paint paint)

Specifies the type of layer backing this view. The layer can be LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE or LAYER_TYPE_HARDWARE.

A layer is associated with an optional Paint instance that controls how the layer is composed on screen. The following properties of the paint are taken into account when composing the layer:

If this view has an alpha value set to < 1.0 by calling setAlpha(float), the alpha value of the layer's paint is superseded by this view's alpha value.

Refer to the documentation of LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE and LAYER_TYPE_HARDWARE for more information on when and how to use layers.

Parameters
layerType int: The type of layer to use with this view, must be one of View.LAYER_TYPE_NONE, View.LAYER_TYPE_SOFTWARE or View.LAYER_TYPE_HARDWARE Value is View.LAYER_TYPE_NONE, View.LAYER_TYPE_SOFTWARE, or View.LAYER_TYPE_HARDWARE

paint Paint: The paint used to compose the layer. This argument is optional and can be null. It is ignored when the layer type is View.LAYER_TYPE_NONE

setLayoutParams

Added in API level 1
public void setLayoutParams (ViewGroup.LayoutParams params)

Set the layout parameters associated with this view. These supply parameters to the parent of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.

Parameters
params ViewGroup.LayoutParams: The layout parameters for this view, cannot be null

setMapTrackballToArrowKeys

Added in API level 1
Deprecated in API level 17
public void setMapTrackballToArrowKeys (boolean setMap)

This method was deprecated in API level 17.
Only the default case, true, will be supported in a future version.

Parameters
setMap boolean

setNetworkAvailable

Added in API level 3
public void setNetworkAvailable (boolean networkUp)

Informs WebView of the network state. This is used to set the JavaScript property window.navigator.isOnline and generates the online/offline event as specified in HTML5, sec. 5.7.7

Parameters
networkUp boolean: a boolean indicating if network is available

setOverScrollMode

Added in API level 9
public void setOverScrollMode (int mode)

Set the over-scroll mode for this view. Valid over-scroll modes are OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS (allow over-scrolling only if the view content is larger than the container), or OVER_SCROLL_NEVER. Setting the over-scroll mode of a view will have an effect only if the view is capable of scrolling.

Parameters
mode int: The new over-scroll mode for this view.

setPictureListener

Added in API level 1
Deprecated in API level 15
public void setPictureListener (WebView.PictureListener listener)

This method was deprecated in API level 15.
This method is now obsolete.

Sets the Picture listener. This is an interface used to receive notifications of a new Picture.

Parameters
listener WebView.PictureListener: an implementation of WebView.PictureListener

setRendererPriorityPolicy

Added in API level 26
public void setRendererPriorityPolicy (int rendererRequestedPriority, 
                boolean waivedWhenNotVisible)

Set the renderer priority policy for this WebView. The priority policy will be used to determine whether an out of process renderer should be considered to be a target for OOM killing. Because a renderer can be associated with more than one WebView, the final priority it is computed as the maximum of any attached WebViews. When a WebView is destroyed it will cease to be considerered when calculating the renderer priority. Once no WebViews remain associated with the renderer, the priority of the renderer will be reduced to RENDERER_PRIORITY_WAIVED. The default policy is to set the priority to RENDERER_PRIORITY_IMPORTANT regardless of visibility, and this should not be changed unless the caller also handles renderer crashes with WebViewClient#onRenderProcessGone. Any other setting will result in WebView renderers being killed by the system more aggressively than the application.

Parameters
rendererRequestedPriority int: the minimum priority at which this WebView desires the renderer process to be bound. Value is RENDERER_PRIORITY_WAIVED, RENDERER_PRIORITY_BOUND, or RENDERER_PRIORITY_IMPORTANT

waivedWhenNotVisible boolean: if true, this flag specifies that when this WebView is not visible, it will be treated as if it had requested a priority of RENDERER_PRIORITY_WAIVED.

setSafeBrowsingWhitelist

Added in API level 27
public static void setSafeBrowsingWhitelist (List<String> hosts, 
                ValueCallback<Boolean> callback)

Sets the list of hosts (domain names/IP addresses) that are exempt from SafeBrowsing checks. The list is global for all the WebViews.

Each rule should take one of these:

Rule Example Matches Subdomain
HOSTNAME example.com Yes
.HOSTNAME .example.com No
IPV4_LITERAL 192.168.1.1 No
IPV6_LITERAL_WITH_BRACKETS [10:20:30:40:50:60:70:80]No

All other rules, including wildcards, are invalid.

The correct syntax for hosts is defined by RFC 3986.

Parameters
hosts List: the list of hosts This value cannot be null.

callback ValueCallback: will be called with true if hosts are successfully added to the allowlist. It will be called with false if any hosts are malformed. The callback will be run on the UI thread This value may be null.

setScrollBarStyle

Added in API level 1
public void setScrollBarStyle (int style)

Specify the style of the scrollbars. The scrollbars can be overlaid or inset. When inset, they add to the padding of the view. And the scrollbars can be drawn inside the padding area or on the edge of the view. For example, if a view has a background drawable and you want to draw the scrollbars inside the padding specified by the drawable, you can use SCROLLBARS_INSIDE_OVERLAY or SCROLLBARS_INSIDE_INSET. If you want them to appear at the edge of the view, ignoring the padding, then you can use SCROLLBARS_OUTSIDE_OVERLAY or SCROLLBARS_OUTSIDE_INSET.

Parameters
style int: the style of the scrollbars. Should be one of SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_INSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY or SCROLLBARS_OUTSIDE_INSET. Value is View.SCROLLBARS_INSIDE_OVERLAY, View.SCROLLBARS_INSIDE_INSET, View.SCROLLBARS_OUTSIDE_OVERLAY, or View.SCROLLBARS_OUTSIDE_INSET

setTextClassifier

Added in API level 27
public void setTextClassifier (TextClassifier textClassifier)

Sets the TextClassifier for this WebView.

Parameters
textClassifier TextClassifier: This value may be null.

setVerticalScrollbarOverlay

Added in API level 1
Deprecated in API level 23
public void setVerticalScrollbarOverlay (boolean overlay)

This method was deprecated in API level 23.
This method has no effect.

Specifies whether the vertical scrollbar has overlay style.

Parameters
overlay boolean: true if vertical scrollbar should have overlay style

setWebChromeClient

Added in API level 1
public void setWebChromeClient (WebChromeClient client)

Sets the chrome handler. This is an implementation of WebChromeClient for use in handling JavaScript dialogs, favicons, titles, and the progress. This will replace the current handler.

Parameters
client WebChromeClient: an implementation of WebChromeClient This value may be null.

setWebContentsDebuggingEnabled

Added in API level 19
public static void setWebContentsDebuggingEnabled (boolean enabled)

Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. This flag can be enabled in order to facilitate debugging of web layouts and JavaScript code running inside WebViews. Please refer to WebView documentation for the debugging guide.

In WebView 113.0.5656.0 and later, this is enabled automatically if the app is declared as android:debuggable="true" in its manifest; otherwise, the default is false.

Enabling web contents debugging allows the state of any WebView in the app to be inspected and modified by the user via adb. This is a security liability and should not be enabled in production builds of apps unless this is an explicitly intended use of the app. More info on secure debug settings.

Parameters
enabled boolean: whether to enable web contents debugging

setWebViewClient

Added in API level 1
public void setWebViewClient (WebViewClient client)

Sets the WebViewClient that will receive various notifications and requests. This will replace the current handler.

Parameters
client WebViewClient: an implementation of WebViewClient This value cannot be null.

See also:

setWebViewRenderProcessClient

Added in API level 29
public void setWebViewRenderProcessClient (Executor executor, 
                WebViewRenderProcessClient webViewRenderProcessClient)

Sets the renderer client object associated with this WebView.

The renderer client encapsulates callbacks relevant to WebView renderer state. See WebViewRenderProcessClient for details.

Although many WebView instances may share a single underlying renderer, and renderers may live either in the application process, or in a sandboxed process that is isolated from the application process, instances of WebViewRenderProcessClient are set per-WebView. Callbacks represent renderer events from the perspective of this WebView, and may or may not be correlated with renderer events affecting other WebViews.

Parameters
executor Executor: the Executor on which WebViewRenderProcessClient callbacks will execute. This value cannot be null. Callback and listener events are dispatched through this Executor, providing an easy way to control which thread is used. To dispatch events through the main thread of your application, you can use Context.getMainExecutor(). Otherwise, provide an Executor that dispatches to an appropriate thread.

webViewRenderProcessClient WebViewRenderProcessClient: the WebViewRenderProcessClient object. This value cannot be null.

setWebViewRenderProcessClient

Added in API level 29
public void setWebViewRenderProcessClient (WebViewRenderProcessClient webViewRenderProcessClient)

Sets the renderer client object associated with this WebView. See setWebViewRenderProcessClient(java.util.concurrent.Executor, android.webkit.WebViewRenderProcessClient) for details.

WebViewRenderProcessClient callbacks will run on the thread that this WebView was initialized on.

Parameters
webViewRenderProcessClient WebViewRenderProcessClient: the WebViewRenderProcessClient object. This value may be null.

shouldDelayChildPressedState

Added in API level 14
public boolean shouldDelayChildPressedState ()

Return true if the pressed state should be delayed for children or descendants of this ViewGroup. Generally, this should be done for containers that can scroll, such as a List. This prevents the pressed state from appearing when the user is actually trying to scroll the content. The default implementation returns true for compatibility reasons. Subclasses that do not scroll should generally override this method and return false.

Returns
boolean

showFindDialog

Added in API level 11
Deprecated in API level 18
public boolean showFindDialog (String text, 
                boolean showIme)

This method was deprecated in API level 18.
This method does not work reliably on all Android versions; implementing a custom find dialog using WebView.findAllAsync() provides a more robust solution.

Starts an ActionMode for finding text in this WebView. Only works if this WebView is attached to the view system.

Parameters
text String: if non-null, will be the initial text to search for. Otherwise, the last String searched for in this WebView will be used to start.

showIme boolean: if true, show the IME, assuming the user will begin typing. If false and text is non-null, perform a find all.

Returns
boolean true if the find dialog is shown, false otherwise

startSafeBrowsing

Added in API level 27
public static void startSafeBrowsing (Context context, 
                ValueCallback<Boolean> callback)

Starts Safe Browsing initialization.

URL loads are not guaranteed to be protected by Safe Browsing until after callback is invoked with true. Safe Browsing is not fully supported on all devices. For those devices callback will receive false.

This should not be called if Safe Browsing has been disabled by manifest tag or WebSettings.setSafeBrowsingEnabled(boolean). This prepares resources used for Safe Browsing.

This should be called with the Application Context (and will always use the Application context to do its work regardless).

Parameters
context Context: Application Context. This value cannot be null.

callback ValueCallback: will be called on the UI thread with true if initialization is successful, false otherwise. This value may be null.

stopLoading

Added in API level 1
public void stopLoading ()

Stops the current load.

zoomBy

Added in API level 21
public void zoomBy (float zoomFactor)

Performs a zoom operation in this WebView.

Parameters
zoomFactor float: the zoom factor to apply. The zoom factor will be clamped to the WebView's zoom limits. This value must be in the range 0.01 to 100.0 inclusive.

zoomIn

Added in API level 1
public boolean zoomIn ()

Performs zoom in in this WebView.

Returns
boolean true if zoom in succeeds, false if no zoom changes

zoomOut

Added in API level 1
public boolean zoomOut ()

Performs zoom out in this WebView.

Returns
boolean true if zoom out succeeds, false if no zoom changes

Protected methods

computeHorizontalScrollOffset

Added in API level 1
protected int computeHorizontalScrollOffset ()

Compute the horizontal offset of the horizontal scrollbar's thumb within the horizontal range. This value is used to compute the position of the thumb within the scrollbar's track.

The range is expressed in arbitrary units that must be the same as the units used by computeHorizontalScrollRange() and computeHorizontalScrollExtent().

The default offset is the scroll offset of this view.

Returns
int the horizontal offset of the scrollbar's thumb

computeHorizontalScrollRange

Added in API level 1
protected int computeHorizontalScrollRange ()

Compute the horizontal range that the horizontal scrollbar represents.

The range is expressed in arbitrary units that must be the same as the units used by computeHorizontalScrollExtent() and computeHorizontalScrollOffset().

The default range is the drawing width of this view.

Returns
int the total horizontal range represented by the horizontal scrollbar

computeVerticalScrollExtent

Added in API level 1
protected int computeVerticalScrollExtent ()

Compute the vertical extent of the vertical scrollbar's thumb within the vertical range. This value is used to compute the length of the thumb within the scrollbar's track.

The range is expressed in arbitrary units that must be the same as the units used by computeVerticalScrollRange() and computeVerticalScrollOffset().

The default extent is the drawing height of this view.

Returns
int the vertical extent of the scrollbar's thumb

computeVerticalScrollOffset

Added in API level 1
protected int computeVerticalScrollOffset ()

Compute the vertical offset of the vertical scrollbar's thumb within the horizontal range. This value is used to compute the position of the thumb within the scrollbar's track.

The range is expressed in arbitrary units that must be the same as the units used by computeVerticalScrollRange() and computeVerticalScrollExtent().

The default offset is the scroll offset of this view.

Returns
int the vertical offset of the scrollbar's thumb

computeVerticalScrollRange

Added in API level 1
protected int computeVerticalScrollRange ()

Compute the vertical range that the vertical scrollbar represents.

The range is expressed in arbitrary units that must be the same as the units used by computeVerticalScrollExtent() and computeVerticalScrollOffset().

Returns
int the total vertical range represented by the vertical scrollbar

The default range is the drawing height of this view.

dispatchDraw

Added in API level 1
protected void dispatchDraw (Canvas canvas)

Called by draw to draw the child views. This may be overridden by derived classes to gain control just before its children are drawn (but after its own view has been drawn).

Parameters
canvas Canvas: This value cannot be null.

onAttachedToWindow

Added in API level 1
protected void onAttachedToWindow ()

This is called when the view is attached to a window. At this point it has a Surface and will start drawing. Note that this function is guaranteed to be called before onDraw(android.graphics.Canvas), however it may be called any time before the first onDraw -- including before or after onMeasure(int, int).
If you override this method you must call through to the superclass implementation.

onConfigurationChanged

Added in API level 8
protected void onConfigurationChanged (Configuration newConfig)

Called when the current configuration of the resources being used by the application have changed. You can use this to decide when to reload resources that can changed based on orientation and other configuration characteristics. You only need to use this if you are not relying on the normal Activity mechanism of recreating the activity instance upon a configuration change.

Parameters
newConfig Configuration: The new resource configuration.

onDraw

Added in API level 1
protected void onDraw (Canvas canvas)

Implement this to do your drawing.

Parameters
canvas Canvas: the canvas on which the background will be drawn This value cannot be null.

onFocusChanged

Added in API level 1
protected void onFocusChanged (boolean focused, 
                int direction, 
                Rect previouslyFocusedRect)

Called by the view system when the focus state of this view changes. When the focus change event is caused by directional navigation, direction and previouslyFocusedRect provide insight into where the focus is coming from. When overriding, be sure to call up through to the super class so that the standard focus handling will occur.
If you override this method you must call through to the superclass implementation.

Parameters
focused boolean: True if the View has focus; false otherwise.

direction int: The direction focus has moved when requestFocus() is called to give this view focus. Values are View.FOCUS_UP, View.FOCUS_DOWN, View.FOCUS_LEFT, View.FOCUS_RIGHT, View.FOCUS_FORWARD, or View.FOCUS_BACKWARD. It may not always apply, in which case use the default. Value is View.FOCUS_BACKWARD, View.FOCUS_FORWARD, View.FOCUS_LEFT, View.FOCUS_UP, View.FOCUS_RIGHT, or View.FOCUS_DOWN

previouslyFocusedRect Rect: The rectangle, in this view's coordinate system, of the previously focused view. If applicable, this will be passed in as finer grained information about where the focus is coming from (in addition to direction). Will be null otherwise.

onMeasure

Added in API level 1
protected void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height. This method is invoked by measure(int, int) and should be overridden by subclasses to provide accurate and efficient measurement of their contents.

CONTRACT: When overriding this method, you must call setMeasuredDimension(int, int) to store the measured width and height of this view. Failure to do so will trigger an IllegalStateException, thrown by measure(int, int). Calling the superclass' onMeasure(int, int) is a valid use.

The base class implementation of measure defaults to the background size, unless a larger size is allowed by the MeasureSpec. Subclasses should override onMeasure(int, int) to provide better measurements of their content.

If this method is overridden, it is the subclass's responsibility to make sure the measured height and width are at least the view's minimum height and width (getSuggestedMinimumHeight() and getSuggestedMinimumWidth()).

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onOverScrolled

Added in API level 9
protected void onOverScrolled (int scrollX, 
                int scrollY, 
                boolean clampedX, 
                boolean clampedY)

Called by overScrollBy(int, int, int, int, int, int, int, int, boolean) to respond to the results of an over-scroll operation.

Parameters
scrollX int: New X scroll value in pixels

scrollY int: New Y scroll value in pixels

clampedX boolean: True if scrollX was clamped to an over-scroll boundary

clampedY boolean: True if scrollY was clamped to an over-scroll boundary

onScrollChanged

Added in API level 1
protected void onScrollChanged (int l, 
                int t, 
                int oldl, 
                int oldt)

This is called in response to an internal scroll in this view (i.e., the view scrolled its own contents). This is typically as a result of scrollBy(int, int) or scrollTo(int, int) having been called.

Parameters
l int: Current horizontal scroll origin.

t int: Current vertical scroll origin.

oldl int: Previous horizontal scroll origin.

oldt int: Previous vertical scroll origin.

onSizeChanged

Added in API level 1
protected void onSizeChanged (int w, 
                int h, 
                int ow, 
                int oh)

This is called during layout when the size of this view has changed. If you were just added to the view hierarchy, you're called with the old values of 0.

Parameters
w int: Current width of this view.

h int: Current height of this view.

ow int: Old width of this view.

oh int: Old height of this view.

onVisibilityChanged

Added in API level 8
protected void onVisibilityChanged (View changedView, 
                int visibility)

Called when the visibility of the view or an ancestor of the view has changed.

Parameters
changedView View: The view whose visibility changed. May be this or an ancestor view. This value cannot be null.

visibility int: The new visibility, one of View.VISIBLE, View.INVISIBLE or View.GONE. Value is View.VISIBLE, View.INVISIBLE, or View.GONE

onWindowVisibilityChanged

Added in API level 1
protected void onWindowVisibilityChanged (int visibility)

Called when the window containing has change its visibility (between GONE, INVISIBLE, and VISIBLE). Note that this tells you whether or not your window is being made visible to the window manager; this does not tell you whether or not your window is obscured by other windows on the screen, even if it is itself visible.

Parameters
visibility int: The new visibility of the window. Value is View.VISIBLE, View.INVISIBLE, or View.GONE