Most visited

Recently visited

Added in API level 1

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


显示网页的视图。 此课程是您可以推出自己的网络浏览器或仅在您的活动中显示一些在线内容的基础。 它使用WebKit渲染引擎来显示网页,并包括在历史中向前和向后导航,放大和缩小,执行文本搜索等等的方法。

请注意,为了让您的Activity访问Internet并在WebView中加载网页,您必须将 INTERNET权限添加到您的Android Manifest文件中:

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

这必须是 <manifest>元素的子元素。

有关更多信息,请阅读 Building Web Apps in WebView

Basic usage

默认情况下,WebView不提供类似浏览器的小部件,不启用JavaScript并忽略网页错误。 如果你的目标只是将一些HTML作为你的用户界面的一部分显示出来,这可能是好的; 除了阅读外,用户不需要与网页交互,网页也不需要与用户交互。 如果你真的想要一个完整的Web浏览器,那么你可能想用URL Intent调用浏览器应用程序,而不是用WebView显示它。 例如:

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

有关更多信息,请参阅 Intent

要在您自己的Activity中提供WebView,请在布局中包含 <WebView> ,或在 onCreate()期间将整个Activity窗口设置为WebView:

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

然后加载所需的网页:

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

WebView有几个定制点,您可以在其中添加自己的行为。 这些是:

这是一个更复杂的例子,显示错误处理,设置和进度通知:

 // 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://developer.android.com/");
 

Zoom

要启用内置缩放功能,请设置WebSettings setBuiltInZoomControls(boolean) (在API级别CUPCAKE引入)。

注意:如果高度或宽度设置为 WRAP_CONTENT则使用缩放可能导致未定义的行为,应予以避免。

Cookie and window management

出于明显的安全原因,您的应用程序拥有自己的缓存,Cookie存储等。“它不共享浏览器应用程序的数据。

默认情况下,由HTML打开新窗口的请求被忽略。 无论它们是由JavaScript打开还是由链接上的目标属性打开,都是如此。 您可以自定义您的WebChromeClient以提供您自己的行为以打开多个窗口,并以任何您想要的方式渲染它们。

当设备方向或任何其他配置更改时,活动的标准行为将被销毁并重新创建。 这将导致WebView重新加载当前页面。 如果你不想这样做,你可以设置你的活动来处理orientationkeyboardHidden变化,然后只留下WebView。 它会自动适当地重新定位自己。 有关如何在运行时处理配置更改的更多信息,请阅读Handling Runtime Changes

Building web pages to support different screen densities

设备的屏幕密度基于屏幕分辨率。 低密度屏幕的每英寸可用像素数量较少,其中高密度屏幕的显示更多 - 有时显着更多 - 每英寸像素更多。 屏幕的密度很重要,因为在其他条件相同的情况下,屏幕像素定义其高度和宽度的UI元素(例如按钮)将在较低密度屏幕上显示较大而在较高密度屏幕上显示较小。 为了简单起见,Android将所有实际的屏幕密度折叠为三种广义密度:高,中,低。

默认情况下,WebView会缩放网页,以便在中等密度屏幕上以与默认外观相匹配的大小绘制网页。 因此,它在高密度屏幕上应用1.5倍缩放(因为其像素较小),在低密度屏幕上缩放0.75倍(因为其像素较大)。 从API级别ECLAIR ,WebView支持DOM,CSS和元标记功能,以帮助您(作为Web开发人员)以不同屏幕密度的目标屏幕为目标。

以下是可用于处理不同屏幕密度的功能摘要:

HTML5 Video support

为了在您的应用程序中支持嵌入式HTML5视频,您需要打开硬件加速。

Full screen support

为了支持全屏 - 对于视频或其他HTML内容 - 您需要设置WebChromeClient并实施onShowCustomView(View, WebChromeClient.CustomViewCallback)onHideCustomView() 如果缺少这两种方法中的任何一种,则Web内容将不被允许进入全屏。 或者,您可以实施getVideoLoadingProgressView()来自定义加载视频时显示的视图。

HTML5 Geolocation API support

对于面向Android N及更高版本的应用程序(API级别> M ),地理位置api仅在安全来源(如https)上受支持。 对于这样的应用程序,请求在非安全来源上的地理定位API会自动被拒绝,而不会调用相应的onGeolocationPermissionsShowPrompt(String, GeolocationPermissions.Callback)方法。

Layout size

建议将WebView布局高度设置为固定值,或者设置为MATCH_PARENT而不是使用WRAP_CONTENT 当使用MATCH_PARENT作为高度时,WebView的父母都不应该使用WRAP_CONTENT布局高度,因为这可能会导致视图大小不正确。

将WebView的高度设置为 WRAP_CONTENT可启用以下行为:

不支持使用WRAP_CONTENT的布局宽度。 如果使用这样的宽度,WebView将尝试使用父宽度。

Metrics

当用户同意时,WebView可能会将匿名诊断数据上传到Google。 这些数据有助于Google改进WebView。 针对实例化WebView的每个应用程序,基于每个应用程序收集数据。 一个单独的应用程序可以通过在其清单中放置以下标签来退出此功能:

 <meta-data android:name="android.webkit.WebView.MetricsOptOut"
            android:value="true" />
 

只有在用户同意并且应用程序未选择退出的情况下,数据才会上传给定的应用程序。

Summary

Nested classes

interface WebView.FindListener

接口来侦听查找结果。

class WebView.HitTestResult

 

interface WebView.PictureListener

此接口在API级别12中已弃用。此接口现在已过时。

class WebView.VisualStateCallback

提供给postVisualStateCallback(long, WebView.VisualStateCallback)回调接口用于接收关于视觉状态的通知。

class WebView.WebViewTransport

用于跨线程边界返回WebView的运输对象。

Inherited XML attributes

From class android.view.ViewGroup
From class android.view.View

Constants

String SCHEME_GEO

地图地址的URI方案。

String SCHEME_MAILTO

电子邮件地址的URI方案。

String SCHEME_TEL

电话号码的URI方案。

Inherited constants

From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

WebView(Context context)

用Context对象构造一个新的WebView。

WebView(Context context, AttributeSet attrs)

用布局参数构造一个新的WebView。

WebView(Context context, AttributeSet attrs, int defStyleAttr)

使用布局参数和默认样式构造一个新的WebView。

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

使用布局参数和默认样式构造一个新的WebView。

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

此构造函数在API级别17中已弃用。私有浏览不再直接通过WebView支持,并且将在未来版本中删除。 喜欢使用WebSettingsWebViewDatabaseCookieManagerWebStorage对隐私数据的细粒度控制。

Public methods

void addJavascriptInterface(Object object, String name)

将提供的Java对象注入此WebView。

boolean canGoBack()

获取此WebView是否具有回退历史项目。

boolean canGoBackOrForward(int steps)

获取页面是否可以返回或转发给定数量的步骤。

boolean canGoForward()

获取此WebView是否具有转发历史记录项目。

boolean canZoomIn()

此方法在API级别17中已弃用。由于Web渲染和UI线程之间的竞争条件,此方法容易出现不准确性; 更喜欢onScaleChanged(WebView, float, float)

boolean canZoomOut()

此方法在API级别17中已弃用。由于Web渲染和UI线程之间的竞争条件,此方法容易出现不准确性; 更喜欢onScaleChanged(WebView, float, float)

Picture capturePicture()

此方法在API级别19中已被弃用。请使用onDraw(Canvas)获取WebView的位图快照,或使用saveWebArchive(String)将内容保存到文件。

void clearCache(boolean includeDiskFiles)

清除资源缓存。

static void clearClientCertPreferences(Runnable onCleared)

清除为响应继续/取消客户端证书请求而存储的客户端证书首选项。

void clearFormData()

如果存在,从当前关注的表单域中移除自动填充弹出框。

void clearHistory()

告诉该WebView清除其内部后退/前进列表。

void clearMatches()

清除由 findAllAsync(String)创建的突出显示的周围文本匹配 findAllAsync(String)

void clearSslPreferences()

清除存储的SSL首选项表,以响应处理SSL证书错误。

void clearView()

此方法在API级别18中已弃用。使用WebView.loadUrl(“about:blank”)可靠地重置视图状态并释放页面资源(包括任何正在运行的JavaScript)。

void computeScroll()

由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。

WebBackForwardList copyBackForwardList()

获取此WebView的WebBackForwardList。

PrintDocumentAdapter createPrintDocumentAdapter(String documentName)

创建一个PrintDocumentAdapter,提供此Webview的内容以进行打印。

PrintDocumentAdapter createPrintDocumentAdapter()

此方法在API级别21中已弃用。请使用createPrintDocumentAdapter(String) ,它要求用户提供打印文档名称。

WebMessagePort[] createWebMessageChannel()

创建与JS通信的消息通道并返回表示此消息通道端点的消息端口。

void destroy()

破坏这个WebView的内部状态。

boolean dispatchKeyEvent(KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。

void documentHasImages(Message response)

查询文档以查看它是否包含任何图像引用。

static void enableSlowWholeDocumentDraw()

对于面向L版本的应用程序,WebView具有新的默认行为,通过智能地选择需要绘制的HTML文档的部分来减少内存占用并提高性能。

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

在当前显示的页面上下文中异步评估JavaScript。

static String findAddress(String addr)

获取由物理位置的地址组成的第一个子字符串。

int findAll(String find)

此方法在API级别16中已被弃用。优选findAllAsync(String)

void findAllAsync(String find)

在页面上查找所有查找实例,并异步突出显示它们。

View findFocus()

在当前拥有焦点的此视图中植根的层次结构中查找视图。

void findNext(boolean forward)

突出显示并滚动到 findAllAsync(String)找到的下一个匹配项, findAllAsync(String)根据需要环绕页面边界。

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

此方法在API级别19中已弃用。内存缓存在不再需要时会自动丢弃,并且会响应系统内存压力。

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

AccessibilityNodeProvider getAccessibilityNodeProvider()

获取用于管理以此视图为根的虚拟视图层次结构的提供者,并将其报告给探索窗口内容的 AccessibilityService

SslCertificate getCertificate()

获取主要顶级页面的SSL证书,如果没有证书(网站不安全),则返回null。

int getContentHeight()

获取HTML内容的高度。

Bitmap getFavicon()

获取当前页面的图标。

Handler getHandler()
WebView.HitTestResult getHitTestResult()

基于当前游标节点获取HitTestResult。

String[] getHttpAuthUsernamePassword(String host, String realm)

检索给定主机和领域的HTTP身份验证凭证。

String getOriginalUrl()

获取当前页面的原始URL。

int getProgress()

获取当前页面的进度。

float getScale()

此方法在API级别17中已弃用。由于Web渲染和UI线程之间的竞争条件,此方法容易出现不准确性; 更喜欢onScaleChanged(WebView, float, float)

WebSettings getSettings()

获取用于控制此WebView设置的WebSettings对象。

String getTitle()

获取当前页面的标题。

String getUrl()

获取当前页面的URL。

void goBack()

回到这个WebView的历史。

void goBackOrForward(int steps)

转到历史项目,该项目是离开当前项目的步骤数目。

void goForward()

在这个WebView的历史中前进。

void invokeZoomPicker()

为此WebView调用图形缩放选择器小部件。

boolean isPrivateBrowsingEnabled()

获取是否在此WebView中启用隐私浏览。

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

使用“数据”方案URL将给定数据加载到此WebView中。

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

将给定的数据加载到此WebView中,并使用baseUrl作为内容的基本URL。

void loadUrl(String url)

加载给定的URL。

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

使用指定的额外HTTP标头加载给定的URL。

void onChildViewAdded(View parent, View child)

此方法在API级别8中已弃用.WebView不再需要实现ViewGroup.OnHierarchyChangeListener。 这种方法现在什么都不做。

void onChildViewRemoved(View p, View child)

此方法在API级别8中已弃用.WebView不再需要实现ViewGroup.OnHierarchyChangeListener。 这种方法现在什么都不做。

InputConnection onCreateInputConnection(EditorInfo outAttrs)

为InputMethod创建一个新的InputConnection以与视图交互。

boolean onDragEvent(DragEvent event)

在调用 startDragAndDrop()之后,处理由系统发送的拖动事件。

void onFinishTemporaryDetach()

在容器完成更改视图后调用 onStartTemporaryDetach()后。

boolean onGenericMotionEvent(MotionEvent event)

实现此方法来处理通用运动事件。

void onGlobalFocusChanged(View oldFocus, View newFocus)

此方法在API级别3中已弃用.WebView不应该实现ViewTreeObserver.OnGlobalFocusChangeListener。 这种方法现在什么都不做。

boolean onHoverEvent(MotionEvent event)

实现此方法来处理悬停事件。

boolean onKeyDown(int keyCode, KeyEvent event)

KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTERKEYCODE_ENTER被释放时,如果视图已启用并且可点击,则执行按下视图。

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

默认实现 KeyEvent.Callback.onKeyMultiple() :始终返回false(不处理事件)。

boolean onKeyUp(int keyCode, KeyEvent event)

KeyEvent.Callback.onKeyUp()默认实现:当 KEYCODE_DPAD_CENTER KEYCODE_ENTERKEYCODE_SPACE时,执行该视图的点击。

void onPause()

尽力尝试暂停可以安全暂停的任何处理,例如动画和地理位置。

void onProvideVirtualStructure(ViewStructure structure)

当从视图中检索辅助结构作为 Activity.onProvideAssistData一部分 Activity.onProvideAssistData以在此视图下生成其他虚拟结构时调用。

void onResume()

在先前调用 onPause()后恢复WebView。

void onStartTemporaryDetach()

当一个容器临时将孩子分开时,这被称为 ViewGroup.detachViewFromParent

boolean onTouchEvent(MotionEvent event)

实现此方法来处理触摸屏幕动作事件。

boolean onTrackballEvent(MotionEvent event)

实现这个方法来处理轨迹球运动事件。

void onWindowFocusChanged(boolean hasWindowFocus)

当包含此视图的窗口获得或失去焦点时调用。

boolean overlayHorizontalScrollbar()

此方法在API级别23中已弃用。此方法现在已过时。

boolean overlayVerticalScrollbar()

此方法在API级别23中已弃用。此方法现在已过时。

boolean pageDown(boolean bottom)

将此WebView的内容向下滚动页面大小的一半。

boolean pageUp(boolean top)

将此WebView的内容向上滚动一半视图大小。

void pauseTimers()

暂停所有WebView的布局,解析和JavaScript定时器。

boolean performLongClick()

调用此视图的OnLongClickListener(如果已定义)。

void postUrl(String url, byte[] postData)

使用“POST”方法将postData加载到此WebView中。

void postVisualStateCallback(long requestId, WebView.VisualStateCallback callback)

发布一个 WebView.VisualStateCallback ,当WebView的当前状态准备好绘制时将会调用它。

void postWebMessage(WebMessage message, Uri targetOrigin)

发布消息到主框架。

void reload()

重新加载当前的URL。

void removeJavascriptInterface(String name)

从此WebView中删除以前注入的Java对象。

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

当该组的小孩想要将特定矩形定位到屏幕上时调用。

boolean requestFocus(int direction, Rect previouslyFocusedRect)

调用此方法可试图将焦点放在特定视图或其后面的某个子视图上,并提供关于焦点来自的方向和特定矩形的提示。 寻找一种观点,重点关注getDescendantFocusability()指定的设置。

void requestFocusNodeHref(Message hrefMsg)

请求最后一个点击点处的定位点或图片元素网址。

void requestImageRef(Message msg)

请求用户最后触摸的图像的URL。

WebBackForwardList restoreState(Bundle inState)

从给定的Bundle中恢复此WebView的状态。

void resumeTimers()

恢复所有WebView的所有布局,解析和JavaScript计时器。

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

此方法在API级别18中已弃用。将来的版本不支持在WebView中保存密码。

WebBackForwardList saveState(Bundle outState)

保存 onSaveInstanceState(Bundle)使用的此WebView的状态。

void saveWebArchive(String filename)

将当前视图保存为Web存档。

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

将当前视图保存为Web存档。

void setBackgroundColor(int color)

设置此视图的背景颜色。

void setCertificate(SslCertificate certificate)

此方法在API级别17中已被弃用。调用此函数没有用处,并且在将来的发行版中将被忽略。

void setDownloadListener(DownloadListener listener)

当渲染引擎无法处理内容时注册要使用的接口,并且应该下载。

void setFindListener(WebView.FindListener listener)

注册侦听器以通知页面查找操作进度。

void setHorizontalScrollbarOverlay(boolean overlay)

此方法在API级别23中已弃用。此方法不起作用。

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

存储给定主机和领域的HTTP身份验证凭证。

void setInitialScale(int scaleInPercent)

设置此WebView的初始缩放比例。

void setLayerType(int layerType, Paint paint)

指定支持此视图的图层的类型。

void setLayoutParams(ViewGroup.LayoutParams params)

设置与此视图关联的布局参数。

void setMapTrackballToArrowKeys(boolean setMap)

此方法在API级别17中已被弃用。未来版本中仅支持默认情况下的true。

void setNetworkAvailable(boolean networkUp)

通知WebView的网络状态。

void setOverScrollMode(int mode)

为此视图设置过卷模式。

void setPictureListener(WebView.PictureListener listener)

此方法在API级别12中已弃用。此方法现在已过时。

void setScrollBarStyle(int style)

指定滚动条的样式。

void setVerticalScrollbarOverlay(boolean overlay)

此方法在API级别23中已弃用。此方法不起作用。

void setWebChromeClient(WebChromeClient client)

设置chrome处理程序。

static void setWebContentsDebuggingEnabled(boolean enabled)

启用加载到此应用程序的任何WebView中的Web内容(HTML / CSS / JavaScript)调试。

void setWebViewClient(WebViewClient client)

设置将接收各种通知和请求的WebViewClient。

boolean shouldDelayChildPressedState()

如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。

boolean showFindDialog(String text, boolean showIme)

此方法在API级别18中已弃用。此方法在所有Android版本上无法可靠运行; 使用WebView.findAllAsync()实现自定义查找对话框提供了更强大的解决方案。

void stopLoading()

停止当前的负载。

void zoomBy(float zoomFactor)

在此WebView中执行缩放操作。

boolean zoomIn()

在此WebView中执行放大。

boolean zoomOut()

在此WebView中执行缩小。

Protected methods

int computeHorizontalScrollOffset()

计算水平滚动条拇指在水平范围内的水平偏移量。

int computeHorizontalScrollRange()

计算水平滚动条代表的水平范围。

int computeVerticalScrollExtent()

计算垂直滚动条拇指在垂直范围内的垂直范围。

int computeVerticalScrollOffset()

计算垂直滚动条拇指在水平范围内的垂直偏移量。

int computeVerticalScrollRange()

计算垂直滚动条代表的垂直范围。

void dispatchDraw(Canvas canvas)

通过绘制来绘制子视图。

void onAttachedToWindow()

这在视图附加到窗口时被调用。

void onConfigurationChanged(Configuration newConfig)

当应用程序使用的资源的当前配置发生更改时调用。

void onDraw(Canvas canvas)

实施这个来做你的绘画。

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

当视图的焦点状态改变时,由视图系统调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

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

overScrollBy(int, int, int, int, int, int, int, int, boolean)调用以响应过度滚动操作的结果。

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

这是为了响应此视图中的内部滚动而调用的(即视图滚动了其自己的内容)。

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

当这个视图的大小发生变化时,这在布局期间被调用。

void onVisibilityChanged(View changedView, int visibility)

当视图的可见性或视图的祖先已更改时调用。

void onWindowVisibilityChanged(int visibility)

叫当包含窗口具有改变其可见性(间 GONEINVISIBLE ,和 VISIBLE )。

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.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource
From interface android.view.ViewTreeObserver.OnGlobalFocusChangeListener
From interface android.view.ViewGroup.OnHierarchyChangeListener

Constants

SCHEME_GEO

Added in API level 1
String SCHEME_GEO

地图地址的URI方案。

常量值:“geo:0,0?q =”

SCHEME_MAILTO

Added in API level 1
String SCHEME_MAILTO

电子邮件地址的URI方案。

常量值:“mailto:”

SCHEME_TEL

Added in API level 1
String SCHEME_TEL

电话号码的URI方案。

常数值:“tel:”

Public constructors

WebView

Added in API level 1
WebView (Context context)

用Context对象构造一个新的WebView。

Parameters
context Context: a Context object used to access application assets

WebView

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

用布局参数构造一个新的WebView。

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

WebView

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

使用布局参数和默认样式构造一个新的WebView。

Parameters
context Context: a Context object used to access application assets
attrs AttributeSet: an AttributeSet passed to our parent
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 21
WebView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

使用布局参数和默认样式构造一个新的WebView。

Parameters
context Context: a Context object used to access application assets
attrs AttributeSet: an AttributeSet passed to our parent
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 11
WebView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                boolean privateBrowsing)

此构造函数在API级别17中已被弃用。
私人浏览不再直接通过WebView支持,并且将在未来版本中删除。 喜欢使用WebSettingsWebViewDatabaseCookieManagerWebStorage对隐私数据的细粒度控制。

使用布局参数和默认样式构造一个新的WebView。

Parameters
context Context: a Context object used to access application assets
attrs AttributeSet: an AttributeSet passed to our parent
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
void addJavascriptInterface (Object object, 
                String name)

将提供的Java对象注入此WebView。 该对象使用提供的名称注入主框架的JavaScript上下文中。 这允许从JavaScript访问Java对象的方法。 对于面向API级别JELLY_BEAN_MR1及以上的应用程序,只能通过JavaScript访问用JavascriptInterface注释的公共方法。 对于面向API级别JELLY_BEAN或更低级别的应用程序,可以访问所有公共方法(包括继承的方法),有关含义,请参阅下面的重要安全说明。

请注意,注入的对象在下次(重新)加载页面之前不会出现在JavaScript中。 例如:

 class JsObject {
    @JavascriptInterface
    public String toString() { return "injectedObject"; }
 }
 webView.addJavascriptInterface(new JsObject(), "injectedObject");
 webView.loadData(" - Android中文版 - API参考文档", "text/html", null);
 webView.loadUrl("javascript:alert(injectedObject.toString())");

重要:

  • 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 JELLY_BEAN or earlier. Apps that target a version later than 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 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.
  • The Java object's fields are not accessible.
  • For applications targeted to API level 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

canGoBack

Added in API level 1
boolean canGoBack ()

获取此WebView是否具有回退历史项目。

Returns
boolean true iff this WebView has a back history item

canGoBackOrForward

Added in API level 1
boolean canGoBackOrForward (int steps)

获取页面是否可以返回或转发给定数量的步骤。

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

canGoForward

Added in API level 1
boolean canGoForward ()

获取此WebView是否具有转发历史记录项目。

Returns
boolean true iff this Webview has a forward history item

canZoomIn

Added in API level 11
boolean canZoomIn ()

此方法在API级别17中已弃用。
由于Web渲染和UI线程之间的竞争条件,此方法容易出现不准确性; 更喜欢onScaleChanged(WebView, float, float)

获取此WebView是否可以放大。

Returns
boolean true if this WebView can be zoomed in

canZoomOut

Added in API level 11
boolean canZoomOut ()

此方法在API级别17中已弃用。
由于Web渲染和UI线程之间的竞争条件,此方法容易出现不准确性; 更喜欢onScaleChanged(WebView, float, float)

获取此WebView是否可以缩小。

Returns
boolean true if this WebView can be zoomed out

capturePicture

Added in API level 1
Picture capturePicture ()

此方法在API级别19中已被弃用。
使用onDraw(Canvas)获取WebView的位图快照,或者saveWebArchive(String)将内容保存到文件。

获取捕获此WebView当前内容的新图片。 该图片是正在显示的整个文档,并不限于此WebView当前显示的区域。 此外,图片是一个静态副本,不受稍后对所显示内容的更改的影响。

请注意,由于内部更改,对于 HONEYCOMBICE_CREAM_SANDWICH之间的API级别,图片不包含固定位置元素或可滚动div。

请注意,从JELLY_BEAN_MR1 ,返回的图片只能绘制到位图支持的Canvas中 - 使用任何其他类型的Canvas将涉及额外的转换,但需要花费内存和性能。 返回的对象不支持createFromStream(InputStream)writeToStream(OutputStream)方法。

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

clearCache

Added in API level 1
void clearCache (boolean includeDiskFiles)

清除资源缓存。 请注意,缓存是按应用程序进行的,因此这将清除所有使用的WebView的缓存。

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

clearClientCertPreferences

Added in API level 21
void clearClientCertPreferences (Runnable onCleared)

清除为响应继续/取消客户端证书请求而存储的客户端证书首选项。 请注意,Webview会在收到ACTION_STORAGE_CHANGED意图时自动清除这些首选项。 首选项由嵌入式应用程序创建的所有网页浏览共享。

Parameters
onCleared Runnable: A runnable to be invoked when client certs are cleared. The embedder can pass null if not interested in the callback. The runnable will be called in UI thread.

clearFormData

Added in API level 1
void clearFormData ()

如果存在,从当前关注的表单域中移除自动填充弹出框。 请注意,这只会影响自动填充弹出窗口的显示,它不会从此WebView的存储中移除任何已保存的表单数据。 要做到这一点,请使用clearFormData()

clearHistory

Added in API level 1
void clearHistory ()

告诉该WebView清除其内部后退/前进列表。

clearMatches

Added in API level 3
void clearMatches ()

清除由 findAllAsync(String)创建的突出显示的周围文本匹配。

clearSslPreferences

Added in API level 1
void clearSslPreferences ()

清除存储的SSL首选项表,以响应处理SSL证书错误。

clearView

Added in API level 1
void clearView ()

此方法在API级别18中已被弃用。
使用WebView.loadUrl(“about:blank”)可靠地重置视图状态并释放页面资源(包括任何正在运行的JavaScript)。

清除此WebView,以便onDraw()只会绘制白色背景,如果MeasureSpec不是MeasureSpec.EXACTLY,onMeasure()将返回0。

computeScroll

Added in API level 1
void computeScroll ()

由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。 如果孩子使用Scroller对象动画滚动,通常会执行此操作。

copyBackForwardList

Added in API level 1
WebBackForwardList copyBackForwardList ()

获取此WebView的WebBackForwardList。 这包含用于查询历史堆栈中的每个项目的后退/前进列表。 这是私人WebBackForwardList的副本,因此它只包含当前状态的快照。 多次调用此方法可能会返回不同的对象。 从此方法返回的对象将不会更新以反映任何新状态。

Returns
WebBackForwardList

createPrintDocumentAdapter

Added in API level 21
PrintDocumentAdapter createPrintDocumentAdapter (String documentName)

创建一个PrintDocumentAdapter,提供此Webview的内容以进行打印。 该适配器通过将Webview内容转换为PDF流来工作。 Webview无法在转换过程中绘制 - 任何这样的绘制都是未定义的。 建议使用专用的非屏幕Webview进行打印。 如有必要,应用程序可能会暂时隐藏可见的WebView,方法是使用包装在返回的对象周围的自定义PrintDocumentAdapter实例并观察onStart和onFinish方法。 有关更多信息,请参阅PrintDocumentAdapter

Parameters
documentName String: The user-facing name of the printed document. See PrintDocumentInfo
Returns
PrintDocumentAdapter

createPrintDocumentAdapter

Added in API level 19
PrintDocumentAdapter createPrintDocumentAdapter ()

此方法在API级别21中已弃用。
使用createPrintDocumentAdapter(String) ,它要求用户提供打印文档名称。

Returns
PrintDocumentAdapter

createWebMessageChannel

Added in API level 23
WebMessagePort[] createWebMessageChannel ()

创建与JS通信的消息通道并返回表示此消息通道端点的消息端口。 HTML5消息通道功能描述为here

返回的消息通道纠缠并已处于启动状态。

Returns
WebMessagePort[] the two message ports that form the message channel.

destroy

Added in API level 1
void destroy ()

破坏这个WebView的内部状态。 在从视图系统中删除此WebView后,应该调用此方法。 破坏后,此WebView上不会调用其他方法。

dispatchKeyEvent

Added in API level 1
boolean dispatchKeyEvent (KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。 此路径从视图树的顶部向下延伸到当前聚焦的视图。 如果这个观点有重点,它会发送给自己。 否则,它将沿着焦点路径调度下一个节点。 这个方法也会触发任何关键的监听器。

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
void documentHasImages (Message response)

查询文档以查看它是否包含任何图像引用。 如果找到图像,则会将arg1设置为1,如果文档未引用任何图像,则将调度消息对象。

Parameters
response Message: the message that will be dispatched with the result

enableSlowWholeDocumentDraw

Added in API level 21
void enableSlowWholeDocumentDraw ()

对于面向L版本的应用程序,WebView具有新的默认行为,通过智能地选择需要绘制的HTML文档的部分来减少内存占用并提高性能。 这些优化对开发者来说是透明的。 但是,在某些情况下,应用程序开发人员可能希望禁用它们:

  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
void evaluateJavascript (String script, 
                ValueCallback<String> resultCallback)

在当前显示的页面上下文中异步评估JavaScript。 如果非null,| resultCallback | 将从该执行中返回的任何结果被调用。 必须在UI线程上调用此方法,并且将在UI线程上进行回调。

兼容性说明。 针对N或更高版本的应用程序,来自空WebView的JavaScript状态不再像loadUrl(String)那样在导航中持续存在。 例如,调用loadUrl(String)之前定义的全局变量和函数将不存在于加载的页面中。 应用程序应该使用addJavascriptInterface(Object, String)来代替在导航中保留JavaScript对象。

Parameters
script String: the JavaScript to execute.
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 notificaion of the result is required.

findAddress

Added in API level 1
String findAddress (String addr)

获取由物理位置的地址组成的第一个子字符串。 目前,只有在美国的地址被检测到,并且包括:

  • 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 String: the string to search for addresses
Returns
String the address, or if no address is found, null

findAll

Added in API level 3
int findAll (String find)

此方法在API级别16中已被弃用。
findAllAsync(String)是首选。

在页面上查找所有查找实例并突出显示它们。 通知任何注册的WebView.FindListener

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

也可以看看:

findAllAsync

Added in API level 16
void findAllAsync (String find)

在页面上查找所有查找实例,并异步突出显示它们。 通知任何注册的WebView.FindListener 对此的连续呼叫将取消所有待处理的搜索。

Parameters
find String: the string to find.

也可以看看:

findFocus

Added in API level 1
View findFocus ()

在当前拥有焦点的此视图中植根的层次结构中查找视图。

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

findNext

Added in API level 3
void findNext (boolean forward)

突出显示并滚动到findAllAsync(String)找到的下一个匹配项, findAllAsync(String)根据需要环绕页面边界。 通知任何注册的WebView.FindListener 如果findAllAsync(String)没有被调用,又或如果clearMatches()自上次查找操作已被调用,这个函数什么也不做。

Parameters
forward boolean: the direction to search

也可以看看:

flingScroll

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

Parameters
vx int
vy int

freeMemory

Added in API level 7
void freeMemory ()

此方法在API级别19中已被弃用。
内存缓存在不再需要时会自动丢弃,并响应系统内存压力。

通知此WebView内存不足以释放任何可用内存。

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这是用来填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getAccessibilityNodeProvider

Added in API level 16
AccessibilityNodeProvider getAccessibilityNodeProvider ()

获取用于管理以此视图为根的虚拟视图层次结构的提供者,并将其报告给探索窗口内容的 AccessibilityService

如果此方法返回一个实例,则此实例负责管理描述以此View为根的虚拟子树的AccessibilityNodeInfo ,其中包括代表视图本身的虚拟子树。 同样,返回的实例负责在任何虚拟视图或根视图本身上执行辅助功能操作。

如果 View.AccessibilityDelegate已通过调用指定 setAccessibilityDelegate(AccessibilityDelegate)getAccessibilityNodeProvider(View)负责处理此调用。

Returns
AccessibilityNodeProvider The provider.

getCertificate

Added in API level 1
SslCertificate getCertificate ()

获取主要顶级页面的SSL证书,如果没有证书(网站不安全),则返回null。

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

getContentHeight

Added in API level 1
int getContentHeight ()

获取HTML内容的高度。

Returns
int the height of the HTML content

getFavicon

Added in API level 1
Bitmap getFavicon ()

获取当前页面的图标。 在调用WebViewClient.onReceivedIcon之前,这是当前页面的图标。

Returns
Bitmap the favicon for the current page

getHandler

Added in API level 1
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
WebView.HitTestResult getHitTestResult ()

基于当前游标节点获取HitTestResult。 如果找到HTML :: a标记并且锚点具有非JavaScript URL,则HitTestResult类型将设置为SRC_ANCHOR_TYPE,并在“extra”字段中设置URL。 如果该锚点没有URL或者它是JavaScript URL,则该类型将为UNKNOWN_TYPE,并且该URL必须通过requestFocusNodeHref(Message)异步检索。 如果找到HTML :: img标签,则将HitTestResult类型设置为IMAGE_TYPE,并在“extra”字段中设置URL。 一种类型的SRC_IMAGE_ANCHOR_TYPE指示具有将图像作为子节点的URL的锚点。 如果找到电话号码,则HitTestResult类型设置为PHONE_TYPE,并且电话号码在HitTestResult的“extra”字段中设置。 如果找到地图地址,则HitTestResult类型设置为GEO_TYPE,并且地址在HitTestResult的“extra”字段中设置。 如果找到电子邮件地址,则HitTestResult类型设置为EMAIL_TYPE,并且电子邮件设置在HitTestResult的“extra”字段中。 否则,HitTestResult类型设置为UNKNOWN_TYPE。

Returns
WebView.HitTestResult

getHttpAuthUsernamePassword

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

检索给定主机和领域的HTTP身份验证凭证。 此方法旨在与onReceivedHttpAuthRequest(WebView, HttpAuthHandler, String, String)一起使用。

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
String getOriginalUrl ()

获取当前页面的原始URL。 这并不总是与传递给WebViewClient.onPageStarted的URL相同,因为尽管该URL的负载已经开始,但当前页面可能尚未更改。 此外,可能会有重定向导致与最初请求的URL不同。

Returns
String the URL that was originally requested for the current page

getProgress

Added in API level 1
int getProgress ()

获取当前页面的进度。

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

getScale

Added in API level 1
float getScale ()

此方法在API级别17中已弃用。
由于Web渲染和UI线程之间的竞争条件,此方法容易出现不准确性; 更喜欢onScaleChanged(WebView, float, float)

获取此WebView的当前比例。

Returns
float the current scale

getSettings

Added in API level 1
WebSettings getSettings ()

获取用于控制此WebView设置的WebSettings对象。

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

getTitle

Added in API level 1
String getTitle ()

获取当前页面的标题。 这是调用WebViewClient.onReceivedTitle之前当前页面的标题。

Returns
String the title for the current page

getUrl

Added in API level 1
String getUrl ()

获取当前页面的URL。 这并不总是与传递给WebViewClient.onPageStarted的URL相同,因为尽管该URL的负载已经开始,但当前页面可能尚未更改。

Returns
String the URL for the current page

goBack

Added in API level 1
void goBack ()

回到这个WebView的历史。

goBackOrForward

Added in API level 1
void goBackOrForward (int steps)

转到历史项目,该项目是离开当前项目的步骤数目。 如果前进,步骤是否定的,并且是积极的。

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

goForward

Added in API level 1
void goForward ()

在这个WebView的历史中前进。

invokeZoomPicker

Added in API level 1
void invokeZoomPicker ()

为此WebView调用图形缩放选择器小部件。 这将导致缩放小部件出现在屏幕上以控制此WebView的缩放级别。

isPrivateBrowsingEnabled

Added in API level 11
boolean isPrivateBrowsingEnabled ()

获取是否在此WebView中启用隐私浏览。

Returns
boolean

loadData

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

使用“数据”方案URL将给定数据加载到此WebView中。

请注意,JavaScript的相同源策略意味着使用此方法加载的页面中运行的脚本将无法访问使用'data'之外的任何方案加载的内容,包括'http(s)'。 为避免此限制,请使用loadDataWithBaseURL()以及适当的基本URL。

编码参数指定数据是base64还是URL编码。 如果数据是base64编码的,则编码参数的值必须是'base64'。 对于参数的所有其他值(包括空值),假定数据对安全URL字符范围内的八位字节使用ASCII编码,并对该范围外的八位字节使用标准的%xx十六进制URL编码。 例如, '#', '%', '\', '?' 应分别替换为%23,%25,%27,%3f。

由该方法形成的'data'scheme URL使用默认的US-ASCII字符集。 如果您需要设置不同的字符集,则应该在URL的loadUrl(String)部分中形成一个“数据”方案URL,并明确指定字符集参数,然后调用loadUrl(String) 请注意,从数据URL的媒体类型部分获取的字符集总是会覆盖HTML或XML文档本身中指定的字符集。

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

loadDataWithBaseURL

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

将给定的数据加载到此WebView中,并使用baseUrl作为内容的基本URL。 基本URL既用于解析相对URL,也用于应用JavaScript的相同源策略。 historyUrl用于历史记录。

请注意,只有当baseUrl指定了'http','https','ftp','ftps','about'或'javascript'以外的方案时,以这种方式指定的内容才可以访问本地设备文件(通过“文件”方案URL) ”。

如果基本URL使用数据方案,则此方法相当于调用loadData()并忽略historyUrl,并将数据视为data:URL的一部分。 如果基本URL使用任何其他方案,那么数据将作为普通字符串(即不是数据URL的一部分)加载到WebView中,并且字符串中的任何URL编码实体都不会被解码。

请注意,在请求使用此方法加载的页面的子资源(图像等)时,baseUrl在“Referer”HTTP标头中发送。

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
mimeType String: the MIMEType of the data, e.g. 'text/html'. If null, defaults to 'text/html'.
encoding String: the encoding of the data
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
void loadUrl (String url)

加载给定的URL。

另请参阅 evaluateJavascript(String, ValueCallback ) 上的兼容性说明。

Parameters
url String: the URL of the resource to load

loadUrl

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

使用指定的额外HTTP标头加载给定的URL。

另请参阅 evaluateJavascript(String, ValueCallback ) 上的兼容性说明。

Parameters
url String: the URL of the resource to load
additionalHttpHeaders Map: 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.

onChildViewAdded

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

此方法在API级别8中已被弃用。
WebView不再需要实现ViewGroup.OnHierarchyChangeListener。 这种方法现在什么都不做。

当新的孩子被添加到父视图时调用。

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
void onChildViewRemoved (View p, 
                View child)

此方法在API级别8中已被弃用。
WebView不再需要实现ViewGroup.OnHierarchyChangeListener。 这种方法现在什么都不做。

当孩子从父视图中移除时调用。

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
InputConnection onCreateInputConnection (EditorInfo outAttrs)

为InputMethod创建一个新的InputConnection以与视图交互。 默认实现返回null,因为它不支持输入方法。 你可以重写这个来实现这种支持。 这只是需要重点和文字输入的视图才需要。

当实现这个时,你可能也想实现 onCheckIsTextEditor()来表明你将返回一个非null的InputConnection。

另外,要小心地正确填写EditorInfo对象,以便连接的IME可以依赖其值。 例如,必须使用正确的光标位置填写initialSelStartinitialSelEnd成员,以便IME正确地与您的应用程序一起工作。

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

onDragEvent

Added in API level 11
boolean onDragEvent (DragEvent event)

在调用 startDragAndDrop()之后,处理由系统发送的拖动事件。

当系统调用这个方法时,它传递一个DragEvent对象。 调用getAction()返回DragEvent中定义的动作类型常量之一。 该方法使用这些来确定拖放操作中发生了什么。

Parameters
event DragEvent: The DragEvent sent by the system. The getAction() method returns an action type constant defined in DragEvent, indicating the type of drag event represented by this object.
Returns
boolean true if the method was successful, otherwise false.

该方法应该返回 true响应的动作类型 ACTION_DRAG_STARTED接收拖动事件当前操作。

该方法还应该返回 true响应的动作类型 ACTION_DROP ,如果它消耗的下降,或者 false ,如果它没有。

onFinishTemporaryDetach

Added in API level 3
void onFinishTemporaryDetach ()

当容器完成更改视图后调用 onStartTemporaryDetach()后。

onGenericMotionEvent

Added in API level 12
boolean onGenericMotionEvent (MotionEvent event)

实现此方法来处理通用运动事件。

通用运动事件描述操纵杆运动,鼠标悬停,触控板触摸,滚轮运动和其他输入事件。 运动事件的source指定接收的输入类别。 此方法的实现必须在处理事件之前检查源中的位。 以下代码示例显示了这是如何完成的。

带有源类SOURCE_CLASS_POINTER通用运动事件被传递到指针下的视图。 所有其他通用运动事件都会传送到重点视图。

 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 mouse 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
void onGlobalFocusChanged (View oldFocus, 
                View newFocus)

此方法在API级别3中已被弃用。
WebView不应该实现ViewTreeObserver.OnGlobalFocusChangeListener。 这种方法现在什么都不做。

在焦点在视图树中更改时调用的回调方法。 当视图树从触摸模式转换为非触摸模式时,oldFocus为空。 当视图树从非触摸模式转换为触摸模式时,newFocus为null。 当焦点在非触摸模式下改变(没有从或转换到触摸模式时),oldFocus或newFocus可以为空。

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

onHoverEvent

Added in API level 14
boolean onHoverEvent (MotionEvent event)

实现此方法来处理悬停事件。

只要指针悬停在视图边界之上或之外,并且该视图当前未被触摸,就会调用此方法。 悬停事件被表示为具有动作指针事件ACTION_HOVER_ENTERACTION_HOVER_MOVE ,或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.

该视图应实现此方法以返回true以指示它正在处理悬停事件,例如通过更改其可绘制状态。

如果视图已启用且可点击,默认实现将调用setHovered(boolean)以在收到悬停输入或悬停退出事件时更新视图的悬停状态。 默认实现也发送悬停可访问性事件。

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
boolean onKeyDown (int keyCode, 
                KeyEvent event)

KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTERKEYCODE_ENTER被释放时,如果视图被启用并且可点击,则执行按下视图。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

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
boolean onKeyMultiple (int keyCode, 
                int repeatCount, 
                KeyEvent event)

默认实现 KeyEvent.Callback.onKeyMultiple() :始终返回false(不处理事件)。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

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
boolean onKeyUp (int keyCode, 
                KeyEvent event)

的默认实现 KeyEvent.Callback.onKeyUp() :当视图进行点击 KEYCODE_DPAD_CENTERKEYCODE_ENTER或者 KEYCODE_SPACE被释放。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

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
void onPause ()

尽力尝试暂停可以安全暂停的任何处理,例如动画和地理位置。 请注意,此调用不会暂停JavaScript。 要全局暂停JavaScript,请使用pauseTimers() 要恢复WebView,请致电onResume()

onProvideVirtualStructure

Added in API level 23
void onProvideVirtualStructure (ViewStructure structure)

当从视图中检索辅助结构作为Activity.onProvideAssistData一部分Activity.onProvideAssistData以在此视图下生成其他虚拟结构时调用。 defaullt实现使用getAccessibilityNodeProvider()尝试从视图的虚拟可访问性节点(如果有)中生成该节点。 您可以覆盖此提供此数据的更优化实施。

Parameters
structure ViewStructure

onResume

Added in API level 11
void onResume ()

在先前调用 onPause()之后恢复WebView。

onStartTemporaryDetach

Added in API level 3
void onStartTemporaryDetach ()

当一个容器临时将孩子分开时,这被称为ViewGroup.detachViewFromParent 当容器完成后, onFinishTemporaryDetach()跟随onFinishTemporaryDetach()onDetachedFromWindow()

onTouchEvent

Added in API level 1
boolean onTouchEvent (MotionEvent event)

实现此方法来处理触摸屏幕动作事件。

如果使用此方法检测点击操作,建议通过执行并调用performClick()来执行操作。 这将确保一致的系统行为,包括:

  • 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
boolean onTrackballEvent (MotionEvent event)

实现这个方法来处理轨迹球运动事件。 自上次事件后轨迹球的相对移动可以通过MotionEvent.getX()MotionEvent.getY()进行检索。 这些都是标准化的,因此移动1对应于用户按下一个DPAD键(所以它们通常是小数值,表示轨迹球中可用的更细粒度的移动信息)。

Parameters
event MotionEvent: The motion event.
Returns
boolean True if the event was handled, false otherwise.

onWindowFocusChanged

Added in API level 1
void onWindowFocusChanged (boolean hasWindowFocus)

当包含此视图的窗口获得或失去焦点时调用。 请注意,这与视图焦点不同:要接收关键事件,视图和其窗口都必须具有焦点。 如果一个窗口显示在需要输入焦点的窗口上,那么您自己的窗口将失去焦点,但视图焦点将保持不变。

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

overlayHorizontalScrollbar

Added in API level 1
boolean overlayHorizontalScrollbar ()

此方法在API级别23中已弃用。
这种方法现在已经过时了。

获取水平滚动条是否具有叠加样式。

Returns
boolean true

overlayVerticalScrollbar

Added in API level 1
boolean overlayVerticalScrollbar ()

此方法在API级别23中已弃用。
这种方法现在已经过时了。

获取垂直滚动条是否具有叠加样式。

Returns
boolean false

pageDown

Added in API level 1
boolean pageDown (boolean bottom)

将此WebView的内容向下滚动页面大小的一半。

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

pageUp

Added in API level 1
boolean pageUp (boolean top)

将此WebView的内容向上滚动一半视图大小。

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
void pauseTimers ()

暂停所有WebView的布局,解析和JavaScript定时器。 这是一个全局请求,并不局限于这个WebView。 如果应用程序已暂停,这可能很有用。

performLongClick

Added in API level 1
boolean performLongClick ()

调用此视图的OnLongClickListener(如果已定义)。 如果OnLongClickListener没有使用该事件,则调用上下文菜单。

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

postUrl

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

使用“POST”方法将postData加载到此WebView中。 如果url不是网络URL,它将被加载loadUrl(String)而忽略postData参数。

Parameters
url String: the URL of the resource to load
postData byte: the data will be passed to "POST" request, which must be be "application/x-www-form-urlencoded" encoded.

postVisualStateCallback

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

发布一个 WebView.VisualStateCallback ,当WebView的当前状态准备好绘制时将会调用它。

因为对DOM的更新是异步处理的,所以对DOM的更新可能不会立即通过后续的onDraw(Canvas)调用来直观反映。 WebView.VisualStateCallback提供了一种机制,在当前时间DOM的内容准备好在WebView下一次绘制时绘制时通知调用者。

回调完成后的下一个绘制保证将DOM的所有更新反映到 WebView.VisualStateCallback发布点,但它也可能包含在回调发布后应用的更新。

此API涵盖的DOM的状态包括以下内容:

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

为了保证 WebView将在调用 onComplete(long)方法后成功渲染第一帧,必须满足以下条件:

在使用此API时,如果WebView屏幕上以避免闪烁,还建议启用预栅格化。 详情请参阅setOffscreenPreRaster(boolean) ,并考虑其注意事项。

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.

postWebMessage

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

发布消息到主框架。 嵌入式应用程序可以将消息限制到某个目标原点。 请参阅HTML5 spec了解如何使用目标原点。

Parameters
message WebMessage: the WebMessage
targetOrigin Uri: the target origin. This is the origin of the page that is intended to receive the message. For best security practices, the user should not specify a wildcard (*) when specifying the origin.

reload

Added in API level 1
void reload ()

重新加载当前的URL。

removeJavascriptInterface

Added in API level 11
void removeJavascriptInterface (String name)

从此WebView中删除以前注入的Java对象。 请注意,除非下一次(重新)加载页面,否则删除将不会反映在JavaScript中。 addJavascriptInterface(Object, String)

Parameters
name String: the name used to expose the object in JavaScript

requestChildRectangleOnScreen

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

当该组的小孩想要将特定矩形定位到屏幕上时调用。 ViewGroup重写这可以相信:

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

ViewGroup这应该维护合同:

  • 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.
      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
boolean requestFocus (int direction, 
                Rect previouslyFocusedRect)

调用此方法可试图将焦点放在特定视图或其后面的某个子视图上,并提供关于焦点来自的方向和特定矩形的提示。 该矩形可以帮助更大的视图提供关于焦点来自何处的更精细的提示,因此,可以在哪里显示选择内容,或者在内部转发焦点更改。 如果视图不可聚焦( isFocusable()返回false),或者如果它是可以聚焦的,并且在设备处于触摸模式时不能在触摸模式( isFocusableInTouchMode() )下聚焦,则视图实际上不会聚焦。 如果视图不可见,视图将不会被关注。 如果其父母之一的getDescendantFocusability()等于FOCUS_BLOCK_DESCENDANTS则视图将不会被关注。 另请参阅focusSearch(int) ,这是您打电话表示您关注的内容,并且您希望您的父母寻找下一个。 如果您的自定义View有其希望转发请求的内部View ,您可能希望覆盖此方法。 寻找一个观点,重点关注getDescendantFocusability()指定的设置。 onRequestFocusInDescendants(int, android.graphics.Rect) ,使用onRequestFocusInDescendants(int, android.graphics.Rect)在该组的孩子中寻找焦点。

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
void requestFocusNodeHref (Message hrefMsg)

请求最后一个点击点处的定位点或图片元素网址。 如果hrefMsg为null,则此方法立即返回,并且不会将hrefMsg发送到其目标。 如果点击的点击中图像,锚点或锚点中的图像,则该消息将其数据中指定键中的字符串关联起来。 与键配对的值可能是空字符串。

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.

requestImageRef

Added in API level 1
void requestImageRef (Message msg)

请求用户最后触摸的图像的URL。 msg将以表示URL的字符串作为其对象发送到其目标。

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
WebBackForwardList restoreState (Bundle inState)

从给定的Bundle中恢复此WebView的状态。 此方法旨在用于onRestoreInstanceState(Bundle) ,应该调用此方法以恢复此WebView的状态。 如果在此WebView有机会构建状态(加载页面,创建后退/前进列表等)之后调用它,则可能会产生不良副作用。 请注意,此方法不再恢复此WebView的显示数据。

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

resumeTimers

Added in API level 1
void resumeTimers ()

恢复所有WebView的所有布局,解析和JavaScript计时器。 这将恢复调度所有计时器。

savePassword

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

此方法在API级别18中已被弃用。
未来版本不支持在WebView中保存密码。

为指定的主机设置用户名和密码对。 Webview使用此数据自动填充Web表单中的用户名和密码字段。 请注意,这与用于HTTP身份验证的凭证无关。

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
WebBackForwardList saveState (Bundle outState)

保存onSaveInstanceState(Bundle)使用的此WebView的状态。 请注意,此方法不再存储此WebView的显示数据。 如果restoreState(Bundle)从未被调用过,则以前的行为可能会泄漏文件。

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

saveWebArchive

Added in API level 11
void saveWebArchive (String filename)

将当前视图保存为Web存档。

Parameters
filename String: the filename where the archive should be placed

saveWebArchive

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

将当前视图保存为Web存档。

Parameters
basename String: the filename where the archive should be placed
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
void setBackgroundColor (int color)

设置此视图的背景颜色。

Parameters
color int: the color of the background

setCertificate

Added in API level 1
void setCertificate (SslCertificate certificate)

此方法在API级别17中已弃用。
调用这个函数没有什么用处,在以后的版本中会被忽略。

设置主要顶级页面的SSL证书。

Parameters
certificate SslCertificate

setDownloadListener

Added in API level 1
void setDownloadListener (DownloadListener listener)

当渲染引擎无法处理内容时注册要使用的接口,并且应该下载。 这将取代当前的处理程序。

Parameters
listener DownloadListener: an implementation of DownloadListener

setFindListener

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

注册侦听器以通知页面查找操作进度。 这将取代当前的侦听器。

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

setHorizontalScrollbarOverlay

Added in API level 1
void setHorizontalScrollbarOverlay (boolean overlay)

此方法在API级别23中已弃用。
这种方法没有效果。

指定水平滚动条是否具有叠加样式。

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

setHttpAuthUsernamePassword

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

存储给定主机和领域的HTTP身份验证凭证。 此方法旨在与onReceivedHttpAuthRequest(WebView, HttpAuthHandler, String, String)一起使用。

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
void setInitialScale (int scaleInPercent)

设置此WebView的初始缩放比例。 0表示默认。 缺省比例的行为取决于getUseWideViewPort()getLoadWithOverviewMode()的状态。 如果内容符合WebView控件的宽度,则缩放设置为100%。 对于范围的内容,在behavor取决于状态getLoadWithOverviewMode() 如果它的值为true,则内容将被缩小为适合宽度的WebView控件,否则不会。 如果初始比例大于0,WebView将以此值作为初始比例。 请注意,与视口元标记中的比例属性不同,此方法不考虑屏幕密度。

Parameters
scaleInPercent int: the initial scale in percent

setLayerType

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

指定支持此视图的图层的类型。 该层可以是LAYER_TYPE_NONELAYER_TYPE_SOFTWARELAYER_TYPE_HARDWARE

的层与可选的相关联Paint实例,其控制层是如何由在屏幕上。 组成图层时考虑以下涂料属性:

如果通过调用 setAlpha(float)将此视图的alpha值设置为<1.0,则该图层的alpha值将被此视图的alpha值取代。

请参阅的文件 LAYER_TYPE_NONELAYER_TYPE_SOFTWARELAYER_TYPE_HARDWARE有关何时以及如何使用层的更多信息。

Parameters
layerType int: The type of layer to use with this view, must be one of LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE or 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 LAYER_TYPE_NONE

setLayoutParams

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

设置与此视图关联的布局参数。 这些视图的父级提供参数,指定应如何安排。 ViewGroup.LayoutParams有许多子类,它们对应ViewGroup的不同子类,它们负责安排子级。

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

setMapTrackballToArrowKeys

Added in API level 1
void setMapTrackballToArrowKeys (boolean setMap)

此方法在API级别17中已弃用。
未来版本中仅支持默认情况下为true。

Parameters
setMap boolean

setNetworkAvailable

Added in API level 3
void setNetworkAvailable (boolean networkUp)

通知WebView的网络状态。 这用于设置JavaScript属性window.navigator.isOnline,并生成HTML5中指定的联机/脱机事件。 5.7.7

Parameters
networkUp boolean: a boolean indicating if network is available

setOverScrollMode

Added in API level 9
void setOverScrollMode (int mode)

为此视图设置过卷模式。 有效的滚动模式有OVER_SCROLL_ALWAYS (默认), OVER_SCROLL_IF_CONTENT_SCROLLS (只允许在视图内容大于容器时滚动滚动)或OVER_SCROLL_NEVER 仅当视图能够滚动时才能设置视图的滚动模式。

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

setPictureListener

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

此方法在API级别12中已被弃用。
这种方法现在已经过时了。

设置图片侦听器。 这是一个用于接收新图片通知的界面。

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

setScrollBarStyle

Added in API level 1
void setScrollBarStyle (int style)

指定滚动条的样式。 滚动条可以重叠或嵌入。 插入时,它们添加到视图的填充。 滚动条可以在填充区域或视图的边缘内绘制。 例如,如果视图具有可绘制背景,并且您想要在drawable指定的填充内绘制滚动条,则可以使用SCROLLBARS_INSIDE_OVERLAY或SCROLLBARS_INSIDE_INSET。 如果您希望它们出现在视图边缘,忽略填充,则可以使用SCROLLBARS_OUTSIDE_OVERLAY或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.

setVerticalScrollbarOverlay

Added in API level 1
void setVerticalScrollbarOverlay (boolean overlay)

此方法在API级别23中已弃用。
这种方法没有效果。

指定垂直滚动条是否具有叠加样式。

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

setWebChromeClient

Added in API level 1
void setWebChromeClient (WebChromeClient client)

设置chrome处理程序。 这是WebChromeClient的一个实现,用于处理JavaScript对话框,网站图标,标题和进度。 这将取代当前的处理程序。

Parameters
client WebChromeClient: an implementation of WebChromeClient

setWebContentsDebuggingEnabled

Added in API level 19
void setWebContentsDebuggingEnabled (boolean enabled)

启用加载到此应用程序的任何WebView中的Web内容(HTML / CSS / JavaScript)调试。 可以启用此标志以便于调试WebViews中运行的Web布局和JavaScript代码。 有关调试指南,请参阅WebView文档。 默认值是false。

Parameters
enabled boolean: whether to enable web contents debugging

setWebViewClient

Added in API level 1
void setWebViewClient (WebViewClient client)

设置将接收各种通知和请求的WebViewClient。 这将取代当前的处理程序。

Parameters
client WebViewClient: an implementation of WebViewClient

shouldDelayChildPressedState

Added in API level 14
boolean shouldDelayChildPressedState ()

如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。 通常,这应该对可以滚动的容器(例如List)完成。 这可以防止在用户实际尝试滚动内容时出现按下状态。 出于兼容性原因,默认实现返回true。 不滚动的子类通常应该重写此方法并返回false。

Returns
boolean

showFindDialog

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

此方法在API级别18中已被弃用。
此方法在所有Android版本上无法可靠运行; 使用WebView.findAllAsync()实现自定义查找对话框提供了更强大的解决方案。

启动ActionMode以查找此WebView中的文本。 仅当此WebView连接到视图系统时才有效。

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

stopLoading

Added in API level 1
void stopLoading ()

停止当前的负载。

zoomBy

Added in API level 21
void zoomBy (float zoomFactor)

在此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
boolean zoomIn ()

在此WebView中执行放大。

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

zoomOut

Added in API level 1
boolean zoomOut ()

在此WebView中执行缩小。

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

Protected methods

computeHorizontalScrollOffset

Added in API level 1
int computeHorizontalScrollOffset ()

计算水平滚动条拇指在水平范围内的水平偏移量。 该值用于计算滚动条轨道内的拇指位置。

范围以任意单位表示,必须与 computeHorizontalScrollRange()computeHorizontalScrollExtent()使用的单位相同。

默认偏移量是该视图的滚动偏移量。

Returns
int the horizontal offset of the scrollbar's thumb

computeHorizontalScrollRange

Added in API level 1
int computeHorizontalScrollRange ()

计算水平滚动条代表的水平范围。

范围以任意单位表示,必须与 computeHorizontalScrollExtent()computeHorizontalScrollOffset()使用的单位相同。

默认范围是此视图的图纸宽度。

Returns
int the total horizontal range represented by the horizontal scrollbar

computeVerticalScrollExtent

Added in API level 1
int computeVerticalScrollExtent ()

计算垂直滚动条拇指在垂直范围内的垂直范围。 该值用于计算滚动条轨道内的拇指长度。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollOffset()使用的单位相同。

默认范围是此视图的绘图高度。

Returns
int the vertical extent of the scrollbar's thumb

computeVerticalScrollOffset

Added in API level 1
int computeVerticalScrollOffset ()

计算垂直滚动条拇指在水平范围内的垂直偏移量。 该值用于计算滚动条轨道内的拇指位置。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollExtent()使用的单位相同。

默认偏移量是该视图的滚动偏移量。

Returns
int the vertical offset of the scrollbar's thumb

computeVerticalScrollRange

Added in API level 1
int computeVerticalScrollRange ()

计算垂直滚动条代表的垂直范围。

范围以任意单位表示,必须与 computeVerticalScrollExtent()computeVerticalScrollOffset()使用的单位相同。

Returns
int the total vertical range represented by the vertical scrollbar

默认范围是此视图的绘图高度。

dispatchDraw

Added in API level 1
void dispatchDraw (Canvas canvas)

通过绘制来绘制子视图。 这可能会被派生类重写,以便在子对象被绘制之前获得控制权(但在绘制自己的视图之后)。

Parameters
canvas Canvas: the canvas on which to draw the view

onAttachedToWindow

Added in API level 1
void onAttachedToWindow ()

这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 请注意,此功能保证在onDraw(android.graphics.Canvas)之前onDraw(android.graphics.Canvas) ,但可以在第一次onDraw之前的任何时候调用此函数 - 包括onMeasure(int, int)之前或之后。

onConfigurationChanged

Added in API level 8
void onConfigurationChanged (Configuration newConfig)

当应用程序使用的资源的当前配置发生更改时调用。 您可以使用它来决定何时重新加载可根据方向和其他配置特性更改的资源。 如果您不依赖正常的配置更改时重新创建活动实例的Activity机制,则只需使用它。

Parameters
newConfig Configuration: The new resource configuration.

onDraw

Added in API level 1
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

onFocusChanged

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

当视图的焦点状态改变时,由视图系统调用。 当焦点更改事件是由方向导航导致的,direction和previouslyFocusedRect提供了焦点来自何处的洞察。 重写时,一定要调用超类,以便进行标准的焦点处理。

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 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 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
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 不这样做会触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()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
void onOverScrolled (int scrollX, 
                int scrollY, 
                boolean clampedX, 
                boolean clampedY)

overScrollBy(int, int, int, int, int, int, int, int, boolean)调用以响应过度滚动操作的结果。

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
void onScrollChanged (int l, 
                int t, 
                int oldl, 
                int oldt)

这是为了响应此视图中的内部滚动而调用的(即视图滚动了其自己的内容)。 这通常是scrollBy(int, int)scrollTo(int, int)被调用的结果。

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
void onSizeChanged (int w, 
                int h, 
                int ow, 
                int oh)

当这个视图的大小发生变化时,这在布局期间被调用。 如果您刚刚添加到视图层次结构中,则会使用旧值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
void onVisibilityChanged (View changedView, 
                int visibility)

当视图的可见性或视图的祖先已更改时调用。

Parameters
changedView View: The view whose visibility changed. May be this or an ancestor view.
visibility int: The new visibility, one of VISIBLE, INVISIBLE or GONE.

onWindowVisibilityChanged

Added in API level 1
void onWindowVisibilityChanged (int visibility)

叫当包含窗口具有改变其可见性(间GONEINVISIBLE ,和VISIBLE )。 请注意,这会告诉您窗口管理器是否使您的窗口可见; 这并不能告诉你你的窗口是否被屏幕上的其他窗口遮挡,即使它本身是可见的。

Parameters
visibility int: The new visibility of the window.

Hooray!