to top
Android APIs
java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AbsoluteLayout
         ↳ android.webkit.WebView

Class Overview

A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Activity. It uses the WebKit rendering engine to display web pages and includes methods to navigate forward and backward through a history, zoom in and out, perform text searches and more.

To enable the built-in zoom, set WebSettings.setBuiltInZoomControls(boolean) (introduced in API level CUPCAKE).

Note that, in order for your Activity to access the Internet and load web pages in a WebView, you must add the INTERNET permissions to your Android Manifest file:

<uses-permission android:name="android.permission.INTERNET" />

This must be a child of the element.

See the Web View tutorial.

Basic usage

By default, a WebView provides no browser-like widgets, does not enable JavaScript and web page errors are ignored. If your goal is only to display some HTML as a part of your UI, this is probably fine; the user won't need to interact with the web page beyond reading it, and the web page won't need to interact with the user. If you actually want a full-blown web browser, then you probably want to invoke the Browser application with a URL Intent rather than show it with a WebView. For example:

 Uri uri = Uri.parse("http://www.example.com");
 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 startActivity(intent);
 

See Intent for more information.

To provide a WebView in your own Activity, include a in your layout, or set the entire Activity window as a WebView during onCreate():

 WebView webview = new WebView(this);
 setContentView(webview);
 

Then load the desired web page:

 // Simplest usage: note that an exception will NOT be thrown
 // if there is an error loading this page (see below).
 webview.loadUrl("http://slashdot.org/");

 // OR, you can also load from an HTML string:
 String summary = "<html><body>You scored <b>192</b> points.</body></html>";
 webview.loadData(summary, "text/html", null);
 // ... although note that there are restrictions on what this HTML can do.
 // See the JavaDocs for loadData() and loadDataWithBaseURL() for more info.
 

A WebView has several customization points where you can add your own behavior. These are:

  • Creating and setting a WebChromeClient subclass. This class is called when something that might impact a browser UI happens, for instance, progress updates and JavaScript alerts are sent here (see Debugging Tasks).
  • Creating and setting a WebViewClient subclass. It will be called when things happen that impact the rendering of the content, eg, errors or form submissions. You can also intercept URL loading here (via shouldOverrideUrlLoading()).
  • Modifying the WebSettings, such as enabling JavaScript with setJavaScriptEnabled().
  • Injecting Java objects into the WebView using the addJavascriptInterface(Object, String) method. This method allows you to inject Java objects into a page's JavaScript context, so that they can be accessed by JavaScript in the page.

Here's a more complicated example, showing error handling, settings, and progress notification:

 // Let's display the progress in the activity title bar, like the
 // browser app does.
 getWindow().requestFeature(Window.FEATURE_PROGRESS);

 webview.getSettings().setJavaScriptEnabled(true);

 final Activity activity = this;
 webview.setWebChromeClient(new WebChromeClient() {
   public void onProgressChanged(WebView view, int progress) {
     // Activities and WebViews measure progress with different scales.
     // The progress meter will automatically disappear when we reach 100%
     activity.setProgress(progress * 1000);
   }
 });
 webview.setWebViewClient(new WebViewClient() {
   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
     Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
   }
 });

 webview.loadUrl("http://slashdot.org/");
 

Cookie and window management

For obvious security reasons, your application has its own cache, cookie store etc.—it does not share the Browser application's data. Cookies are managed on a separate thread, so operations like index building don't block the UI thread. Follow the instructions in CookieSyncManager if you want to use cookies in your application.

By default, requests by the HTML to open new windows are ignored. This is true whether they be opened by JavaScript or by the target attribute on a link. You can customize your WebChromeClient to provide your own behaviour for opening multiple windows, and render them in whatever manner you want.

The standard behavior for an Activity is to be destroyed and recreated when the device orientation or any other configuration changes. This will cause the WebView to reload the current page. If you don't want that, you can set your Activity to handle the orientation and keyboardHidden changes, and then just leave the WebView alone. It'll automatically re-orient itself as appropriate. Read Handling Runtime Changes for more information about how to handle configuration changes during runtime.

Building web pages to support different screen densities

The screen density of a device is based on the screen resolution. A screen with low density has fewer available pixels per inch, where a screen with high density has more — sometimes significantly more — pixels per inch. The density of a screen is important because, other things being equal, a UI element (such as a button) whose height and width are defined in terms of screen pixels will appear larger on the lower density screen and smaller on the higher density screen. For simplicity, Android collapses all actual screen densities into three generalized densities: high, medium, and low.

By default, WebView scales a web page so that it is drawn at a size that matches the default appearance on a medium density screen. So, it applies 1.5x scaling on a high density screen (because its pixels are smaller) and 0.75x scaling on a low density screen (because its pixels are bigger). Starting with API level ECLAIR, WebView supports DOM, CSS, and meta tag features to help you (as a web developer) target screens with different screen densities.

Here's a summary of the features you can use to handle different screen densities:

  • The window.devicePixelRatio DOM property. The value of this property specifies the default scaling factor used for the current device. For example, if the value of window.devicePixelRatio is "1.0", then the device is considered a medium density (mdpi) device and default scaling is not applied to the web page; if the value is "1.5", then the device is considered a high density device (hdpi) and the page content is scaled 1.5x; if the value is "0.75", then the device is considered a low density device (ldpi) and the content is scaled 0.75x. However, if you specify the "target-densitydpi" meta property (discussed below), then you can stop this default scaling behavior.
  • The -webkit-device-pixel-ratio CSS media query. Use this to specify the screen densities for which this style sheet is to be used. The corresponding value should be either "0.75", "1", or "1.5", to indicate that the styles are for devices with low density, medium density, or high density screens, respectively. For example:
     <link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio:1.5)" href="hdpi.css" />

    The hdpi.css stylesheet is only used for devices with a screen pixel ration of 1.5, which is the high density pixel ratio.

  • The target-densitydpi property for the viewport meta tag. You can use this to specify the target density for which the web page is designed, using the following values:
    • device-dpi - Use the device's native dpi as the target dpi. Default scaling never occurs.
    • high-dpi - Use hdpi as the target dpi. Medium and low density screens scale down as appropriate.
    • medium-dpi - Use mdpi as the target dpi. High density screens scale up and low density screens scale down. This is also the default behavior.
    • low-dpi - Use ldpi as the target dpi. Medium and high density screens scale up as appropriate.
    • - Specify a dpi value to use as the target dpi (accepted values are 70-400).

    Here's an example meta tag to specify the target density:

    <meta name="viewport" content="target-densitydpi=device-dpi" />

If you want to modify your web page for different densities, by using the -webkit-device-pixel-ratio CSS media query and/or the window.devicePixelRatio DOM property, then you should set the target-densitydpi meta property to device-dpi. This stops Android from performing scaling in your web page and allows you to make the necessary adjustments for each density via CSS and JavaScript.

HTML5 Video support

In order to support inline HTML5 video in your application, you need to have hardware acceleration turned on, and set a WebChromeClient. For full screen support, implementations of onShowCustomView(View, WebChromeClient.CustomViewCallback) and onHideCustomView() are required, getVideoLoadingProgressView() is optional.

Summary

Nested Classes
interface WebView.FindListener Interface to listen for find results. 
class WebView.HitTestResult  
interface WebView.PictureListener This interface is deprecated. This interface is now obsolete.  
class WebView.WebViewTransport Transportation object for returning WebView across thread boundaries. 
[Expand]
Inherited XML Attributes
From class android.view.ViewGroup
From class android.view.View
Constants
String SCHEME_GEO URI scheme for map address.
String SCHEME_MAILTO URI scheme for email address.
String SCHEME_TEL URI scheme for telephone number.
[Expand]
Inherited Constants
From class android.view.ViewGroup
From class android.view.View
[Expand]
Inherited Fields
From class android.view.View
Public Constructors
WebView(Context context)
Constructs a new WebView with a Context object.
WebView(Context context, AttributeSet attrs)
Constructs a new WebView with layout parameters.
WebView(Context context, AttributeSet attrs, int defStyle)
Constructs a new WebView with layout parameters and a default style.
WebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing)
Constructs a new WebView with layout parameters and a default style.
Public Methods
void addJavascriptInterface(Object object, String name)
Injects the supplied Java object into this WebView.
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()
Gets whether this WebView can be zoomed in.
boolean canZoomOut()
Gets whether this WebView can be zoomed out.
Picture capturePicture()
Gets a new picture that captures the current display of this WebView.
void clearCache(boolean includeDiskFiles)
Clears the resource cache.
void clearFormData()
Makes sure that clearing the form data removes the adapter from the currently focused textfield if there is one.
void clearHistory()
Tells this WebView to clear its internal back/forward list.
void clearMatches()
Clears the highlighting surrounding text matches created by findAll(String) or findAllAsync(String).
void clearSslPreferences()
Clears the SSL preferences table stored in response to proceeding with SSL certificate errors.
void clearView()
Clears this WebView so that onDraw() will draw nothing but white background, and onMeasure() will return 0 if MeasureSpec is not MeasureSpec.EXACTLY.
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.
void debugDump()
This method is deprecated. This method is now obsolete.
void destroy()
Destroys the internal state of this WebView.
static void disablePlatformNotifications()
This method is deprecated. This method is now obsolete.
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.
void emulateShiftHeld()
This method is deprecated. This method is now obsolete.
static void enablePlatformNotifications()
This method is deprecated. This method is now obsolete.
static String findAddress(String addr)
Gets the first substring consisting of the address of a physical location.
int findAll(String find)
This method is deprecated. findAllAsync(String) is preferred.
void findAllAsync(String find)
Finds all instances of find on the page and highlights them, asynchronously.
void findNext(boolean forward)
Highlights and scrolls to the next match found by findAll(String) or findAllAsync(String), wrapping around page boundaries as necessary.
void flingScroll(int vx, int vy)
void freeMemory()
Informs this WebView that memory is low so that it can free any available memory.
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.
Bitmap getFavicon()
Gets the favicon for the current page.
WebView.HitTestResult getHitTestResult()
Gets a HitTestResult based on the current cursor node.
String[] getHttpAuthUsernamePassword(String host, String realm)
Retrieves the HTTP authentication username and password for a given host and realm pair
String getOriginalUrl()
Gets the original URL for the current page.
int getProgress()
Gets the progress for the current page.
float getScale()
Gets the current scale of this WebView.
WebSettings getSettings()
Gets the WebSettings object used to control the settings for this WebView.
String getTitle()
Gets the title for the current page.
String getUrl()
Gets the URL for the current page.
int getVisibleTitleHeight()
This method is deprecated. This method is now obsolete.
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.
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 the specified additional HTTP headers.
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)
Create a new InputConnection for an InputMethod to interact with 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.
void onInitializeAccessibilityEvent(AccessibilityEvent event)
Initializes an AccessibilityEvent with information about this View which is the event source.
void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)
Initializes an AccessibilityNodeInfo with information about this view.
boolean onKeyDown(int keyCode, KeyEvent event)
Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view when KEYCODE_DPAD_CENTER or 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 KEYCODE_DPAD_CENTER or KEYCODE_ENTER is released.
void onPause()
Pauses any extra processing associated with this WebView and its associated DOM, plugins, JavaScript etc.
void onResume()
Resumes a WebView after a previous call to onPause().
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 onWindowFocusChanged(boolean hasWindowFocus)
Called when the window containing this view gains or loses focus.
boolean overlayHorizontalScrollbar()
Gets whether horizontal scrollbar has overlay style.
boolean overlayVerticalScrollbar()
Gets whether vertical scrollbar has overlay style.
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 performAccessibilityAction(int action, Bundle arguments)
Performs the specified accessibility action on the view.
boolean performLongClick()
Call 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 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.
boolean restorePicture(Bundle b, File src)
This method is deprecated. This method is now obsolete.
WebBackForwardList restoreState(Bundle inState)
Restores the state of this WebView from the given map used in onRestoreInstanceState(Bundle).
void resumeTimers()
Resumes all layout, parsing, and JavaScript timers for all WebViews.
void savePassword(String host, String username, String password)
Saves the username and password for a particular host in this WebView's internal database.
boolean savePicture(Bundle b, File dest)
This method is deprecated. This method is now obsolete.
WebBackForwardList saveState(Bundle outState)
Saves the state of this WebView used in 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)
Sets the SSL certificate for the main top-level page.
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)
Specifies whether the horizontal scrollbar has overlay style.
void setHttpAuthUsernamePassword(String host, String realm, String username, String password)
Sets the HTTP authentication credentials for a given host and realm.
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)
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 is deprecated. This method is now obsolete.
void setScrollBarStyle(int style)

Specify the style of the scrollbars.

void setVerticalScrollbarOverlay(boolean overlay)
Specifies whether the vertical scrollbar has overlay style.
void setWebChromeClient(WebChromeClient client)
Sets the chrome handler.
void setWebViewClient(WebViewClient client)
Sets the WebViewClient that will receive various notifications and requests.
boolean shouldDelayChildPressedState()
Return true if the pressed state should be delayed for children or descendants of this ViewGroup.
boolean showFindDialog(String text, boolean showIme)
Starts an ActionMode for finding text in this WebView.
void stopLoading()
Stops the current load.
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 horizontal 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 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 onDetachedFromWindow()
This is called when the view is detached from a window.
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 is changed.
void onWindowVisibilityChanged(int visibility)
Called when the window containing has change its visibility (between GONE, INVISIBLE, and VISIBLE).
[Expand]
Inherited Methods
From class android.widget.AbsoluteLayout
From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.ViewGroup.OnHierarchyChangeListener
From interface android.view.ViewManager
From interface android.view.ViewParent
From interface android.view.ViewTreeObserver.OnGlobalFocusChangeListener
From interface android.view.accessibility.AccessibilityEventSource

Constants

public static final String SCHEME_GEO

Since: API Level 1

URI scheme for map address.

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

public static final String SCHEME_MAILTO

Since: API Level 1

URI scheme for email address.

Constant Value: "mailto:"

public static final String SCHEME_TEL

Since: API Level 1

URI scheme for telephone number.

Constant Value: "tel:"

Public Constructors

public WebView (Context context)

Since: API Level 1

Constructs a new WebView with a Context object.

Parameters
context a Context object used to access application assets

public WebView (Context context, AttributeSet attrs)

Since: API Level 1

Constructs a new WebView with layout parameters.

Parameters
context a Context object used to access application assets
attrs an AttributeSet passed to our parent

public WebView (Context context, AttributeSet attrs, int defStyle)

Since: API Level 1

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

Parameters
context a Context object used to access application assets
attrs an AttributeSet passed to our parent
defStyle the default style resource ID

public WebView (Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing)

Since: API Level 11

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

Parameters
context a Context object used to access application assets
attrs an AttributeSet passed to our parent
defStyle the default style resource ID
privateBrowsing whether this WebView will be initialized in private mode

Public Methods

public void addJavascriptInterface (Object object, String name)

Since: API Level 1

Injects the supplied Java object into this WebView. The object is injected into the JavaScript context of the main frame, using the supplied name. This allows the Java object's public methods to be accessed from JavaScript. Note that that injected objects will not appear in JavaScript until the page is next (re)loaded. For example:

 webView.addJavascriptInterface(new Object(), "injectedObject");
 webView.loadData("", "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, particularly as 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.

Parameters
object the Java object to inject into this WebView's JavaScript context. Null values are ignored.
name the name used to expose the object in JavaScript

public boolean canGoBack ()

Since: API Level 1

Gets whether this WebView has a back history item.

Returns
  • true iff this WebView has a back history item

public boolean canGoBackOrForward (int steps)

Since: API Level 1

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

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

public boolean canGoForward ()

Since: API Level 1

Gets whether this WebView has a forward history item.

Returns
  • true iff this Webview has a forward history item

public boolean canZoomIn ()

Since: API Level 11

Gets whether this WebView can be zoomed in.

Returns
  • true if this WebView can be zoomed in

public boolean canZoomOut ()

Since: API Level 11

Gets whether this WebView can be zoomed out.

Returns
  • true if this WebView can be zoomed out

public Picture capturePicture ()

Since: API Level 1

Gets a new picture that captures the current display of this WebView. This is a copy of the display, and will be unaffected if this WebView later loads a different URL.

Returns
  • a picture containing the current contents of this WebView. Note this picture is of the entire document, and is not restricted to the bounds of the view.

public void clearCache (boolean includeDiskFiles)

Since: API Level 1

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

Parameters
includeDiskFiles if false, only the RAM cache is cleared

public void clearFormData ()

Since: API Level 1

Makes sure that clearing the form data removes the adapter from the currently focused textfield if there is one.

public void clearHistory ()

Since: API Level 1

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

public void clearMatches ()

Since: API Level 3

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

public void clearSslPreferences ()

Since: API Level 1

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

public void clearView ()

Since: API Level 1

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

public void computeScroll ()

Since: API Level 1

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.

public WebBackForwardList copyBackForwardList ()

Since: API Level 1

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.

public void debugDump ()

Since: API Level 1

This method is deprecated.
This method is now obsolete.

public void destroy ()

Since: API Level 1

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.

public static void disablePlatformNotifications ()

Since: API Level 1

This method is deprecated.
This method is now obsolete.

Disables platform notifications of data state and proxy changes. Notifications are enabled by default.

public boolean dispatchKeyEvent (KeyEvent event)

Since: API Level 1

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 The key event to be dispatched.
Returns
  • True if the event was handled, false otherwise.

public void documentHasImages (Message response)

Since: API Level 1

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 the message that will be dispatched with the result

public void emulateShiftHeld ()

Since: API Level 8

This method is deprecated.
This method is now obsolete.

Puts this WebView into text selection mode. Do not rely on this functionality; it will be deprecated in the future.

public static void enablePlatformNotifications ()

Since: API Level 1

This method is deprecated.
This method is now obsolete.

Enables platform notifications of data state and proxy changes. Notifications are enabled by default.

public static String findAddress (String addr)

Since: API Level 1

Gets the first substring consisting of the address of a physical location. Currently, only addresses in the United States are detected, and 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.

Parameters
addr the string to search for addresses
Returns
  • the address, or if no address is found, null

public int findAll (String find)

Since: API Level 3

This method is deprecated.
findAllAsync(String) is preferred.

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

Parameters
find the string to find
Returns
  • the number of occurances of the String "find" that were found

public void findAllAsync (String find)

Since: API Level 16

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

Parameters
find the string to find.

public void findNext (boolean forward)

Since: API Level 3

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

Parameters
forward the direction to search

public void flingScroll (int vx, int vy)

Since: API Level 1

public void freeMemory ()

Since: API Level 7

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

public SslCertificate getCertificate ()

Since: API Level 1

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

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

public int getContentHeight ()

Since: API Level 1

Gets the height of the HTML content.

Returns
  • the height of the HTML content

public Bitmap getFavicon ()

Since: API Level 1

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

Returns
  • the favicon for the current page

public WebView.HitTestResult getHitTestResult ()

Since: API Level 1

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.

public String[] getHttpAuthUsernamePassword (String host, String realm)

Since: API Level 1

Retrieves the HTTP authentication username and password for a given host and realm pair

Parameters
host the host for which the credentials apply
realm the realm for which the credentials apply
Returns
  • String[] if found. String[0] is username, which can be null and String[1] is password. Return null if it can't find anything.

public String getOriginalUrl ()

Since: API Level 3

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
  • the URL that was originally requested for the current page

public int getProgress ()

Since: API Level 1

Gets the progress for the current page.

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

public float getScale ()

Since: API Level 1

Gets the current scale of this WebView.

Returns
  • the current scale

public WebSettings getSettings ()

Since: API Level 1

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

Returns
  • a WebSettings object that can be used to control this WebView's settings

public String getTitle ()

Since: API Level 1

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

Returns
  • the title for the current page

public String getUrl ()

Since: API Level 1

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
  • the URL for the current page

public int getVisibleTitleHeight ()

Since: API Level 11

This method is deprecated.
This method is now obsolete.

Gets the visible height (in pixels) of the embedded title bar (if any).

public void goBack ()

Since: API Level 1

Goes back in the history of this WebView.

public void goBackOrForward (int steps)

Since: API Level 1

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 the number of steps to take back or forward in the back forward list

public void goForward ()

Since: API Level 1

Goes forward in the history of this WebView.

public void invokeZoomPicker ()

Since: API Level 1

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.

public boolean isPrivateBrowsingEnabled ()

Since: API Level 11

Gets whether private browsing is enabled in this WebView.

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

Since: API Level 1

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.

If the value of the encoding parameter is 'base64', then the data must be encoded as base64. Otherwise, the data must use 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. For example, '#', '%', '\', '?' should be replaced by %23, %25, %27, %3f respectively.

The 'data' scheme URL formed by this method uses the default US-ASCII charset. If you need 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(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.

Parameters
data a String of data in the given encoding
mimeType the MIME type of the data, e.g. 'text/html'
encoding the encoding of the data

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

Since: API Level 1

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.

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.

Parameters
baseUrl the URL to use as the page's base URL. If null defaults to 'about:blank'.
data a String of data in the given encoding
mimeType the MIMEType of the data, e.g. 'text/html'. If null, defaults to 'text/html'.
encoding the encoding of the data
historyUrl the URL to use as the history entry. If null defaults to 'about:blank'.

public void loadUrl (String url)

Since: API Level 1

Loads the given URL.

Parameters
url the URL of the resource to load

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

Since: API Level 8

Loads the given URL with the specified additional HTTP headers.

Parameters
url the URL of the resource to load
additionalHttpHeaders the additional headers to be used in the HTTP request for this URL, 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 overriden by this WebView's defaults.

public void onChildViewAdded (View parent, View child)

Since: API Level 1

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 the view in which a child was added
child the new child view added in the hierarchy

public void onChildViewRemoved (View p, View child)

Since: API Level 1

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 the view from which the child was removed
child the child removed from the hierarchy

public InputConnection onCreateInputConnection (EditorInfo outAttrs)

Since: API Level 3

Create a new InputConnection for an InputMethod to interact with the view. The default implementation returns null, since it doesn't support input methods. You can override this to implement such support. This is only needed for views that take focus and text input.

When implementing this, you probably also want to implement onCheckIsTextEditor() to indicate you will return a non-null InputConnection.

Parameters
outAttrs Fill in with attribute information about the connection.

public boolean onGenericMotionEvent (MotionEvent event)

Since: API Level 12

Implement this method to handle generic motion events.

Generic motion events describe joystick movements, mouse hovers, track pad touches, scroll wheel movements and other input events. 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 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.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
         if (event.getAction() == MotionEvent.ACTION_MOVE) {
             // process the joystick movement...
             return true;
         }
     }
     if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
         switch (event.getAction()) {
             case MotionEvent.ACTION_HOVER_MOVE:
                 // process the mouse hover movement...
                 return true;
             case MotionEvent.ACTION_SCROLL:
                 // process the scroll wheel movement...
                 return true;
         }
     }
     return super.onGenericMotionEvent(event);
 }

Parameters
event The generic motion event being processed.
Returns
  • True if the event was handled, false otherwise.

public void onGlobalFocusChanged (View oldFocus, View newFocus)

Since: API Level 1

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 The previously focused view, if any.
newFocus The newly focused View, if any.

public boolean onHoverEvent (MotionEvent event)

Since: API Level 14

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 ACTION_HOVER_ENTER, ACTION_HOVER_MOVE, or ACTION_HOVER_EXIT.

  • The view receives a hover event with action ACTION_HOVER_ENTER when the pointer enters the bounds of the view.
  • The view receives a hover event with action 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 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 The motion event that describes the hover.
Returns
  • True if the view handled the hover event.

public void onInitializeAccessibilityEvent (AccessibilityEvent event)

Since: API Level 14

Initializes an AccessibilityEvent with information about this View which is the event source. In other words, the source of an accessibility event is the view whose state change triggered firing the event.

Example: Setting the password property of an event in addition to properties set by the super implementation:

 public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
     super.onInitializeAccessibilityEvent(event);
     event.setPassword(true);
 }

If an View.AccessibilityDelegate has been specified via calling setAccessibilityDelegate(AccessibilityDelegate) its onInitializeAccessibilityEvent(View, AccessibilityEvent) is responsible for handling this call.

Note: Always call the super implementation before adding information to the event, in case the default implementation has basic information to add.

Parameters
event The event to initialize.

public void onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info)

Since: API Level 14

Initializes an AccessibilityNodeInfo with information about this view. The base implementation sets:

Subclasses should override this method, call the super implementation, and set additional attributes.

If an View.AccessibilityDelegate has been specified via calling setAccessibilityDelegate(AccessibilityDelegate) its onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfo) is responsible for handling this call.

Parameters
info The instance to initialize.

public boolean onKeyDown (int keyCode, KeyEvent event)

Since: API Level 1

Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view when KEYCODE_DPAD_CENTER or 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 A key code that represents the button pressed, from KeyEvent.
event The KeyEvent object that defines the button action.
Returns
  • If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

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

Since: API Level 1

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 A key code that represents the button pressed, from KeyEvent.
repeatCount The number of times the action was made.
event The KeyEvent object that defines the button action.
Returns
  • If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

public boolean onKeyUp (int keyCode, KeyEvent event)

Since: API Level 1

Default implementation of KeyEvent.Callback.onKeyUp(): perform clicking of the view when KEYCODE_DPAD_CENTER or KEYCODE_ENTER 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 A key code that represents the button pressed, from KeyEvent.
event The KeyEvent object that defines the button action.
Returns
  • If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

public void onPause ()

Since: API Level 11

Pauses any extra processing associated with this WebView and its associated DOM, plugins, JavaScript etc. For example, if this WebView is taken offscreen, this could be called to reduce unnecessary CPU or network traffic. When this WebView is again "active", call onResume(). Note that this differs from pauseTimers(), which affects all WebViews.

public void onResume ()

Since: API Level 11

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

public boolean onTouchEvent (MotionEvent event)

Since: API Level 1

Implement this method to handle touch screen motion events.

Parameters
event The motion event.
Returns
  • True if the event was handled, false otherwise.

public boolean onTrackballEvent (MotionEvent event)

Since: API Level 1

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 The motion event.
Returns
  • True if the event was handled, false otherwise.

public void onWindowFocusChanged (boolean hasWindowFocus)

Since: API Level 1

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 True if the window containing this view now has focus, false otherwise.

public boolean overlayHorizontalScrollbar ()

Since: API Level 1

Gets whether horizontal scrollbar has overlay style.

Returns
  • true if horizontal scrollbar has overlay style

public boolean overlayVerticalScrollbar ()

Since: API Level 1

Gets whether vertical scrollbar has overlay style.

Returns
  • true if vertical scrollbar has overlay style

public boolean pageDown (boolean bottom)

Since: API Level 1

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

Parameters
bottom true to jump to bottom of page
Returns
  • true if the page was scrolled

public boolean pageUp (boolean top)

Since: API Level 1

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

Parameters
top true to jump to the top of the page
Returns
  • true if the page was scrolled

public void pauseTimers ()

Since: API Level 1

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.

public boolean performAccessibilityAction (int action, Bundle arguments)

Since: API Level 16

Performs the specified accessibility action on the view. For possible accessibility actions look at AccessibilityNodeInfo.

If an View.AccessibilityDelegate has been specified via calling setAccessibilityDelegate(AccessibilityDelegate) its performAccessibilityAction(View, int, Bundle) is responsible for handling this call.

Parameters
action The action to perform.
arguments Optional action arguments.
Returns
  • Whether the action was performed.

public boolean performLongClick ()

Since: API Level 1

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

Returns
  • True if one of the above receivers consumed the event, false otherwise.

public void postUrl (String url, byte[] postData)

Since: API Level 5

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

Parameters
url the URL of the resource to load
postData the data will be passed to "POST" request

public void reload ()

Since: API Level 1

Reloads the current URL.

public void removeJavascriptInterface (String name)

Since: API Level 11

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 the name used to expose the object in JavaScript

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

Since: API Level 1

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 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 The direct child making the request.
rect The rectangle in the child's coordinates the child wishes to be on the screen.
immediate True to forbid animated or delayed scrolling, false otherwise
Returns
  • Whether the group scrolled to handle the operation

public boolean requestFocus (int direction, Rect previouslyFocusedRect)

Since: API Level 1

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 getDescendantFocusability() equal to 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 One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
previouslyFocusedRect 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
  • Whether this view or one of its descendants actually took focus.

public void requestFocusNodeHref (Message hrefMsg)

Since: API Level 1

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 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.

public void requestImageRef (Message msg)

Since: API Level 1

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 the message to be dispatched with the result of the request as the data member with "url" as key. The result can be null.

public boolean restorePicture (Bundle b, File src)

Since: API Level 3

This method is deprecated.
This method is now obsolete.

Restores the display data that was saved in savePicture(Bundle, File). Used in conjunction with restoreState(Bundle). Note that this will not work if this WebView is hardware accelerated.

Parameters
b a Bundle containing the saved display data
src the file where the picture data was stored
Returns
  • true if the picture was successfully restored

public WebBackForwardList restoreState (Bundle inState)

Since: API Level 1

Restores the state of this WebView from the given map used in onRestoreInstanceState(Bundle). This method should be called to restore the state of this WebView before using the object. 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. See savePicture(Bundle, File) and restorePicture(Bundle, File) for saving and restoring the display data.

Parameters
inState the incoming Bundle of state
Returns
  • the restored back/forward list or null if restoreState failed

public void resumeTimers ()

Since: API Level 1

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

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

Since: API Level 1

Saves the username and password for a particular host in this WebView's internal database.

Parameters
host the host that required the credentials
username the username for the given host
password the password for the given host

public boolean savePicture (Bundle b, File dest)

Since: API Level 3

This method is deprecated.
This method is now obsolete.

Saves the current display data to the Bundle given. Used in conjunction with saveState(Bundle).

Parameters
b a Bundle to store the display data
dest the file to store the serialized picture data. Will be overwritten with this WebView's picture data.
Returns
  • true if the picture was successfully saved

public WebBackForwardList saveState (Bundle outState)

Since: API Level 1

Saves the state of this WebView used in 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. See savePicture(Bundle, File) and restorePicture(Bundle, File) for saving and restoring the display data.

Parameters
outState the Bundle to store this WebView's state
Returns
  • the same copy of the back/forward list used to save the state. If saveState fails, the returned list will be null.

public void saveWebArchive (String filename)

Since: API Level 11

Saves the current view as a web archive.

Parameters
filename the filename where the archive should be placed

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

Since: API Level 11

Saves the current view as a web archive.

Parameters
basename the filename where the archive should be placed
autoname 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 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.

public void setBackgroundColor (int color)

Since: API Level 1

Sets the background color for this view.

Parameters
color the color of the background

public void setCertificate (SslCertificate certificate)

Since: API Level 1

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

public void setDownloadListener (DownloadListener listener)

Since: API Level 1

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 an implementation of DownloadListener

public void setFindListener (WebView.FindListener listener)

Since: API Level 16

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

Parameters
listener an implementation of WebView.FindListener

public void setHorizontalScrollbarOverlay (boolean overlay)

Since: API Level 1

Specifies whether the horizontal scrollbar has overlay style.

Parameters
overlay true if horizontal scrollbar should have overlay style

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

Since: API Level 1

Sets the HTTP authentication credentials for a given host and realm.

Parameters
host the host for the credentials
realm the realm for the credentials
username the username for the password. If it is null, it means password can't be saved.
password the password

public void setInitialScale (int scaleInPercent)

Since: API Level 1

Sets the initial scale for this WebView. 0 means default. If getUseWideViewPort() is true, it zooms out all the way. Otherwise it starts with 100%. 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 the initial scale in percent

public void setLayerType (int layerType, Paint paint)

Since: API Level 11

Specifies the type of layer backing this view. The layer can be disabled, software or 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 replaced by this view's alpha value. Calling setAlpha(float) is therefore equivalent to setting a hardware layer on this view and providing a paint with the desired alpha value.

Refer to the documentation of disabled, software and hardware for more information on when and how to use layers.

Parameters
layerType The ype of layer to use with this view, must be one of LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE or LAYER_TYPE_HARDWARE
paint The paint used to compose the layer. This argument is optional and can be null. It is ignored when the layer type is LAYER_TYPE_NONE

public void setLayoutParams (ViewGroup.LayoutParams params)

Since: API Level 1

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 The layout parameters for this view, cannot be null

public void setMapTrackballToArrowKeys (boolean setMap)

Since: API Level 1

public void setNetworkAvailable (boolean networkUp)

Since: API Level 3

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 a boolean indicating if network is available

public void setOverScrollMode (int mode)

Since: API Level 9

Set the over-scroll mode for this view. Valid over-scroll modes are OVER_SCROLL_ALWAYS (default), 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 The new over-scroll mode for this view.

public void setPictureListener (WebView.PictureListener listener)

Since: API Level 1

This method is deprecated.
This method is now obsolete.

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

Parameters
listener an implementation of WebView.PictureListener

public void setScrollBarStyle (int style)

Since: API Level 1

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 the style of the scrollbars. Should be one of SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_INSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY or SCROLLBARS_OUTSIDE_INSET.

public void setVerticalScrollbarOverlay (boolean overlay)

Since: API Level 1

Specifies whether the vertical scrollbar has overlay style.

Parameters
overlay true if vertical scrollbar should have overlay style

public void setWebChromeClient (WebChromeClient client)

Since: API Level 1

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 an implementation of WebChromeClient

public void setWebViewClient (WebViewClient client)

Since: API Level 1

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

Parameters
client an implementation of WebViewClient

public boolean shouldDelayChildPressedState ()

Since: API Level 14

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.

public boolean showFindDialog (String text, boolean showIme)

Since: API Level 11

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

Parameters
text 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 if true, show the IME, assuming the user will begin typing. If false and text is non-null, perform a find all.
Returns
  • true if the find dialog is shown, false otherwise

public void stopLoading ()

Since: API Level 1

Stops the current load.

public boolean zoomIn ()

Since: API Level 1

Performs zoom in in this WebView.

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

public boolean zoomOut ()

Since: API Level 1

Performs zoom out in this WebView.

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

Protected Methods

protected int computeHorizontalScrollOffset ()

Since: API Level 1

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
  • the horizontal offset of the scrollbar's thumb

protected int computeHorizontalScrollRange ()

Since: API Level 1

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
  • the total horizontal range represented by the horizontal scrollbar

protected int computeVerticalScrollExtent ()

Since: API Level 1

Compute the vertical extent of the horizontal 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
  • the vertical extent of the scrollbar's thumb

protected int computeVerticalScrollOffset ()

Since: API Level 1

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
  • the vertical offset of the scrollbar's thumb

protected int computeVerticalScrollRange ()

Since: API Level 1

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
  • the total vertical range represented by the vertical scrollbar

    The default range is the drawing height of this view.

protected void onAttachedToWindow ()

Since: API Level 1

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).

protected void onConfigurationChanged (Configuration newConfig)

Since: API Level 8

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 characterstics. 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 The new resource configuration.

protected void onDetachedFromWindow ()

Since: API Level 1

This is called when the view is detached from a window. At this point it no longer has a surface for drawing.

protected void onDraw (Canvas canvas)

Since: API Level 1

Implement this to do your drawing.

Parameters
canvas the canvas on which the background will be drawn

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

Since: API Level 1

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.

Parameters
focused True if the View has focus; false otherwise.
direction The direction focus has moved when requestFocus() is called to give this view focus. Values are FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD, or FOCUS_BACKWARD. It may not always apply, in which case use the default.
previouslyFocusedRect 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.

protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

Since: API Level 1

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 overriden 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 horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

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

Since: API Level 9

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

Parameters
scrollX New X scroll value in pixels
scrollY New Y scroll value in pixels
clampedX True if scrollX was clamped to an over-scroll boundary
clampedY True if scrollY was clamped to an over-scroll boundary

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

Since: API Level 1

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 Current horizontal scroll origin.
t Current vertical scroll origin.
oldl Previous horizontal scroll origin.
oldt Previous vertical scroll origin.

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

Since: API Level 1

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 Current width of this view.
h Current height of this view.
ow Old width of this view.
oh Old height of this view.

protected void onVisibilityChanged (View changedView, int visibility)

Since: API Level 8

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

Parameters
changedView The view whose visibility changed. Could be 'this' or an ancestor view.
visibility The new visibility of changedView: VISIBLE, INVISIBLE or GONE.

protected void onWindowVisibilityChanged (int visibility)

Since: API Level 1

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 The new visibility of the window.