android webview

WebView

INTERNET 权限

您的应用必须能够访问互联网。要获取互联网访问权限,请在您的清单文件中请求INTERNET权限

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

loadUrl(String)

加载给定的 URL。

android4.4 以下跟 H5 交互需要调用 loadUrl(javascript:方法名(参数))来实现调用js方法

evaluateJavascript(String,ValueCallback<String>)

android4.4之后才能使用

注意:该方法的执行不会使页面刷新

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

  • script

    要执行的 JavaScript,该值不能为 null。

  • resultCallback

    当脚本执行完成并得到执行结果(如果有)时要调用的回调。null如果不需要通知结果。

loadUrl(String,Map<String,String>)

加载带有附加 HTTP 标头的给定 URL,指定为从名称到值的映射。请注意,如果此映射包含此 WebView 默认设置的任何标头,例如控制缓存、接受类型或 User-Agent 的标头,则它们的值可能会被此 WebView 的默认值覆盖。

loadData(String,String,String)

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

  • data

    给定编码的数据字符串 此值不能为null

  • mimeType

    数据的 MIME 类型,例如 ‘text/html’。这个值可能是null

  • encoding

    数据的编码 这个值可能是null

loadDataWithBaseURL(String,String,String,String)

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

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

  • baseUrl

    用作页面基本 URL 的 URL。如果null默认为about:blank

  • data

    给定编码的数据字符串 此值不能为null

  • mimeType

    数据的 MIME 类型,例如 ‘text/html’。这个值可能是null

  • encoding

    数据的编码 这个值可能是null

  • historyUrl

    用作历史记录条目的 URL。如果null默认为about:blank。如果非空,这必须是一个有效的 URL。

addJavascriptInterface(Object,String)

将提供的 Java 对象注入此 WebView。使用提供的名称将该对象注入到网页的所有框架中,包括所有 iframe。这允许从 JavaScript 访问 Java 对象的方法。

android4.2 以及以上版本的应用,只有带有@JavascriptInterface注解的公共方法, JavaScrpit 才能访问到。android4.2以下的版本,可以访问所有公共方法(包括继承的方法)

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

canGoBack()

获取此 WebView 是否有返回历史记录项。返回一个 boolean

canGoForward()

获取此 WebView 是否有向前历史记录项。返回一个 boolean

canGoBackOrForward(int)

获取页面是否可以返回或前进给定的步数。返回一个 boolean

clearCache(boolean)

清除资源缓存。

  • includeDiskFiles

    如果为 false,只清除内存缓存

destroy()

销毁此 WebView 的内部状态。在从视图系统中删除此 WebView 后,应调用此方法。销毁后,不能在此 WebView 上调用其他方法。

getContentHeight ()

获取 HTML 内容的高度。

getCurrentWebViewPackage()

如果 WebView 已经加载到当前进程中,此方法将返回用于加载它的包。否则,将返回当前加载 WebView 时将使用的包;这不会导致 WebView 被加载,因此此信息可能随时过时。

返回值:

  • PackageInfo

    当前的 WebView 包,或者null如果没有

getOriginalUrl ()

获取当前页面的原始 URL。这并不总是与传递给 WebViewClient.onPageStarted 的 URL 相同,因为虽然该 URL 的加载已经开始,但当前页面可能没有改变。此外,可能存在重定向导致与最初请求的 URL 不同的 URL。

返回值:

  • String

    最初为当前页面请求的 URL,或者 null如果没有加载页面

getSettings()

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

返回值:

  • WebSettings

    一个 WebSettings 对象,可用于控制此 WebView 的设置 此值不能null

WebSettings

  1. getAllowContentAccess()

    获取此 WebView 是否支持内容 URL 访问。

  2. getAllowFileAccess()

    获取此 WebView 是否支持文件访问。

  3. getAllowFileAccessFromFileURLs()

    获取在文件方案 URL 的上下文中运行的 JavaScript 是否可以访问来自其他文件方案 URL 的内容。

  4. getAllowUniversalAccessFromFileURLs()

    获取在文件方案 URL 的上下文中运行的 JavaScript 是否可以访问来自任何来源的内容。这包括从其他文件方案 URL 访问内容。

  5. getCacheMode()

    获取用于覆盖缓存模式的当前设置。

    覆盖缓存模式的当前设置值为, , , , 或LOAD_DEFAULT``LOAD_NORMAL``LOAD_CACHE_ELSE_NETWORK``LOAD_NO_CACHE``LOAD_CACHE_ONLY

  6. getDatabaseEnabled()

    获取是否启用了数据库存储 API。

  7. setAllowContentAccess(boolean)

    在 WebView 中启用或禁用内容 URL 访问。内容 URL 访问允许 WebView 从安装在系统中的内容提供程序加载内容。默认启用。

  8. setAllowFileAccess(boolean)

    在 WebView 中启用或禁用文件访问。请注意,这仅启用或禁用文件系统访问。仍然可以使用 file:///android_asset 和 file:///android_res 访问资产和资源。

  9. setAllowFileAccessFromFileURLs(boolean)

    设置是否应允许文件方案 URL 上下文中的跨域请求访问来自其他文件方案 URL 的内容。请注意,某些访问(例如图像 HTML 元素)不遵循同源规则,并且不受此设置的影响。

    如果您打开可能由外部来源创建或更改的文件,请**不要启用此设置。**启用此设置允许在上下文中加载的恶意脚本file:// 访问任意本地文件,包括 WebView cookie 和应用程序私有数据。

  10. setAllowUniversalAccessFromFileURLs(boolean)

    设置是否应允许文件方案 URL 上下文中的跨域请求访问来自任何源的内容。这包括从其他文件方案 URL 或 Web 上下文访问内容。请注意,某些访问(例如图像 HTML 元素)不遵循同源规则,并且不受此设置的影响。

    如果您打开可能由外部来源创建或更改的文件,请**不要启用此设置。**启用此设置允许在上下文中加载的恶意脚本file:// 启动跨站点脚本攻击,访问任意本地文件,包括 WebView cookie、应用程序私有数据,甚至是任意网站上使用的凭据。

  11. setCacheMode(int)

    覆盖使用缓存的方式。使用缓存的方式取决于导航类型。对于正常的页面加载,会检查缓存并根据需要重新验证内容。向后导航时,不会重新验证内容,而是从缓存中检索内容。此方法允许客户端通过指定 、 或 之一来LOAD_DEFAULT覆盖 LOAD_CACHE_ELSE_NETWORKLOAD_NO_CACHE行为 LOAD_CACHE_ONLY。默认值为LOAD_DEFAULT

  12. setDatabaseEnabled(boolean)

    设置是否启用数据库存储 API。默认值为假。另请参阅setDatabasePath(String)如何正确设置数据库存储 API。此设置实际上是全局的,跨进程中的所有 WebView 实例。请注意,您应该只在给定进程中加载任何WebView 页面之前修改此设置,因为在此之后 WebView 实现可能会忽略对此设置的更改。

  13. setDomStorageEnabled(boolean)

    设置是否启用 DOM 存储 API。默认值为false。决定是否启用 DOM 的Local Storage 和 Session Storage 存储。

  14. setJavaScriptCanOpenWindowsAutomatically(boolean)

    告诉 JavaScript 自动打开窗口。这适用于 JavaScript 函数window.open()。默认值为false.

  15. setJavaScriptEnabled(boolean)

    告诉 WebView 启用 JavaScript 执行。 默认值为false.

  16. setLoadWithOverviewMode(boolean)

    设置 WebView 是否以概览模式加载页面,即按宽度缩小内容以适应屏幕。当内容宽度大于 WebView 控件的宽度时会考虑该设置,例如getUseWideViewPort() 启用时。默认值为false.

  17. setUseWideViewPort(boolean)

    设置 WebView 是应该启用对“viewport”HTML 元标记的支持还是应该使用宽视口。当设置的值为 时false,布局宽度始终设置为 WebView 控件的宽度,以设备无关 (CSS) 像素为单位。当值为true且页面包含视口元标记时,使用标记中指定的宽度值。如果页面不包含标签或不提供宽度,则将使用宽视口。

  18. setMediaPlaybackRequiresUserGesture(boolean)

    设置 WebView 是否需要用户手势来播放媒体。默认值为true.

  19. setSupportZoom(boolean)

    设置 WebView 是否应支持使用其屏幕缩放控件和手势进行缩放。可以使用 设置应使用的特定缩放机制setBuiltInZoomControls(boolean)。此设置不影响使用WebView#zoomIn()WebView#zoomOut()方法执行的缩放。默认值为true.

  20. setUseWideViewPort(boolean)

    设置 WebView 是应该启用对“viewport”HTML 元标记的支持还是应该使用宽视口。当设置的值为 时false,布局宽度始终设置为 WebView 控件的宽度,以设备无关 (CSS) 像素为单位。当值为true且页面包含视口元标记时,使用标记中指定的宽度值。如果页面不包含标签或不提供宽度,则将使用宽视口。

getUrl()

获取当前页面的 URL。这并不总是与传递给 WebViewClient.onPageStarted 的 URL 相同,因为虽然该 URL 的加载已经开始,但当前页面可能没有改变。

返回值:

  • String

    当前页面的 URL,或者null如果没有加载页面

getWebChromeClient()

获取 chrome 处理程序。

返回值:

  • WebChromeClient

    WebChromeClient,或者null如果尚未设置

getWebViewClient()

获取 WebViewClient。

返回值:

  • WebViewClient

    WebViewClient 或默认客户端(如果尚未设置) 此值不能为null.

saveWebArchive (String)

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

  • filename

    归档文件所在的文件名 这个值不能是null

setBackgroundColor(int)

设置此视图的背景颜色。

  • color

    背景颜色

setInitialScale(int)

设置此 WebView 的初始比例。0 表示默认值。

如果内容按宽度适合 WebView 控件,则缩放设置为 100%。对于广泛的内容,行为取决于WebSettings#getLoadWithOverviewMode(). 如果其值为true,则内容将被缩小以适应 WebView 控件的宽度,否则不会。

  • scaleInPercent

    以百分比表示的初始比例

setWebChromeClient(WebChromeClient)

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

  • client

    WebChromeClient 的一个实现 这个值可能是null.

WebChromeClient

  1. getDefaultVideoPoster()

    不播放时,视频元素由“海报”图像表示。要使用的图像可以由 HTML 中视频标签的海报属性指定。如果该属性不存在,则将使用默认海报。此方法允许 ChromeClient 提供该默认图像。

    返回值:

    • Bitmap

      位图 用作默认海报的图像,或者null如果没有这样的图像可用。

  2. getVisitedHistory(ValueCallback<String[]>)

    获取所有访问历史项的列表,用于链接着色

  3. onConsoleMessage(ConsoleMessage)

    向主机应用程序报告 JavaScript 控制台消息。ChromeClient 应该覆盖它以处理他们认为合适的日志消息。

    • consoleMessage

      包含控制台消息详细信息的对象。

  4. onJsAlert(WebView,String,String,JsResult)

    通知主机应用程序该网页想要显示一个 JavaScriptalert()对话框。

    如果此方法返回false或未被覆盖,则默认行为是显示一个包含警报消息的对话框并暂停 JavaScript 执行,直到该对话框被关闭。

    要显示自定义对话框,应用程序应true从此方法返回,在这种情况下,将不显示默认对话框,并且 JavaScript 执行将暂停。当自定义对话框被关闭时应用程序应该调用 JsResult.confirm(),以便可以恢复 JavaScript 执行。

  5. onProgressChanged(WebView,int)

    告诉宿主应用程序加载页面的当前进度。

  6. onReceivedIcon(WebView,Bitmap)
    通知主机应用程序当前页面的新网站图标

  7. onReceivedTitle(WebView,String)
    通知主机应用程序文档标题的更改。

setWebContentsDebuggingEnabled(boolean)

启用对加载到此应用程序的任何 WebView 中的 Web 内容(HTML / CSS / JavaScript)的调试。可以启用此标志,以便于调试 Web 布局和在 WebView 中运行的 JavaScript 代码。

setWebViewClient(WebViewClient)

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

  • client

    WebViewClient 的一个实现 这个值不能null

WebViewClient

  1. onPageFinished

    通知主机应用程序页面已完成加载。此方法仅对主机调用

  2. onPageStarted

    通知主机应用程序页面已开始加载。每次加载主框架时都会调用一次此方法

  3. onReceivedError

    向主机应用程序报告错误。这些错误是不可恢复的

  4. onReceivedHttpError

    通知主机应用程序在加载资源时从服务器接收到 HTTP 错误。HTTP 错误的状态码 >= 400。

  5. onReceivedSslError

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

  6. shouldInterceptRequest

    将资源请求通知宿主应用程序并允许应用程序返回数据。如果返回值为null,则 WebView 将照常继续加载资源。否则,将使用返回响应和数据。

  7. shouldOverrideUrlLoading

    当即将在当前 WebView 中加载 URL 时,让宿主应用程序有机会进行控制。如果未提供 WebViewClient,默认情况下 WebView 将要求 Activity Manager 为 URL 选择正确的处理程序。如果提供了 WebViewClient,返回 true会导致当前 WebView 中止加载 URL,而返回 false会导致 WebView 像往常一样继续加载 URL。

stopLoading()

停止加载

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值