Webkit
最新更新 | 稳定版 | 发布候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025年6月4日 | 1.14.0 | - | - | - |
声明依赖项
要添加对 Webkit 的依赖项,您必须将 Google Maven 仓库添加到您的项目中。阅读Google 的 Maven 仓库以获取更多信息。
在您的应用或模块的build.gradle
文件中添加所需工件的依赖项
Groovy
dependencies { implementation "androidx.webkit:webkit:1.14.0" }
Kotlin
dependencies { implementation("androidx.webkit:webkit:1.14.0") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或对改进此库有任何想法,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为您已有的问题投票。
有关更多信息,请参阅问题跟踪器文档。
版本 1.14
版本 1.14.0
2025年6月4日
androidx.webkit:webkit:1.14.0
已发布。版本 1.14.0 包含这些提交。
自 1.13.0 以来的重要变更
- 引入
PaymentRequest
API,用于通过org.chromium.intent.action.PAY
intent 调用 Android 原生支付应用。PaymentRequest
默认禁用,WebView
主机应用可以调用WebSettingsCompat.setPaymentRequestEnabled(settings, true) 来启用它。此外,PaymentRequest
需要在AndroidManifest.xml
中包含一个<queries>
标签。有关更多信息,请参阅setPaymentRequestEnabled()
的文档。 - 引入实验性导航 API,用于增强
WebView
内的网页导航跟踪和管理。这些 API 提供有关导航事件的详细信息。首先,通过调用WebViewCompat.setNavigationClient并实现新的WebNavigationClient接口来获取有关页面导航的详细信息。有关导航生命周期的更多信息,请参阅导航生命周期演示文稿。
版本 1.14.0-rc01
2025年5月20日
androidx.webkit:webkit:1.14.0-rc01
已发布。版本 1.14.0-rc01 包含这些提交。
- 自
1.14.0-beta01
以来没有变化。
版本 1.14.0-beta01
2025年5月7日
androidx.webkit:webkit:1.14.0-beta01
已发布。版本 1.14.0-beta01 包含这些提交。
API 变更
- 将上下文作为参数添加到
startUpWebView()
API (Ic29cd, b/406701301)
版本 1.14.0-alpha01
2025年4月9日
androidx.webkit:webkit:1.14.0-alpha01
已发布。版本 1.14.0-alpha01 包含这些提交。
新功能
- 引入
PaymentRequest
API,用于通过org.chromium.intent.action.PAY
intent 调用 Android 原生支付应用。PaymentRequest
默认禁用,WebView 主机应用可以调用WebSettingsCompat.setPaymentRequestEnabled(settings, true)
来启用它。此外,PaymentRequest
需要在AndroidManifest.xml
中包含一个<queries>
标签。有关更多信息,请参阅setPaymentRequestEnabled()
的文档。 (I3304e, b/404920055) - 引入实验性导航回调。此版本引入了实验性 API,用于增强
WebView
内的网页导航跟踪和管理。这些 API 提供有关导航事件的详细信息。主要功能WebNavigationClient
接口:引入了一个新接口WebNavigationClient
,具有导航事件回调onNavigationStarted(Navigation navigation)
:在导航开始时通知。onNavigationRedirected(Navigation navigation)
:在导航重定向时通知。onNavigationCompleted(Navigation navigation)
:在导航完成时通知。Navigation
接口:提供有关导航的详细信息,包括:URL、页面启动状态、同文档状态、重新加载状态、历史记录状态、后退/前进状态、提交状态、错误页面状态、状态码和会话恢复状态。Navigation
对象作为每个导航的唯一标识符,允许开发人员关联相关的导航事件。Page
类:引入了Page
类,它作为页面关联数据的键。 (I351a6)
- 引入了一个新的实验性 API,用于切换缓存提供程序对象的行为。 (I14636)
API 变更
- 更新了
WebViewFeature
中的PROFILE_URL_PREFETCH
功能值。 (I606fd) - 添加了
WebViewCompat#saveState
,类似于WebView#saveState
,但允许限制返回状态的大小并决定是否保存前进历史条目。 (Iea7d6) - 将
maxPrerenders
配置添加到SpeculativeLoadingConfig
API (I67245)
版本 1.13
版本 1.13.0
2025年3月12日
androidx.webkit:webkit:1.13.0
已发布。版本 1.13.0 包含这些提交。
自 1.12.0 以来的重要变更
- 引入了一个新的实验性 URL 预渲染 API,允许开发人员推测性地预渲染候选 URL,从而实现更快的导航。 (I0cfe7)
- 引入了一组新的 API,用于删除
WebView
存储的浏览数据。WebStorageCompat
中的新 API 应优先于android.webkit.WebStorage
中的现有 API,因为它们将保证删除所有本地存储,包括网络缓存和 Cookie,以及任何已安装的服务工作线程。如果将来引入新的存储 API,这些新方法将更新以包含它们所删除的存储。 (Iad54f, b/382273208) - 添加
setPartitionedCookiesEnabled
API。这将允许开发人员在WebView
中启用和禁用分区 Cookie。 (Ic506a, b/364904765) - 将套接字标记 API 添加到
WebView
,用于使用NetworkStatsManager
/TrafficStats
对WebView
的网络流量进行记账。此功能仅适用于WebView
M133。 (Ica441, b/374932688) - 添加实验性
WebView
异步启动 API。 (I94b8a) - 配置文件中的 URL 预取:在
Profile
中引入了一个新的 API,允许开发人员触发 URL 预取。预取清除:添加了一个 API 来清除正在进行的预取。( I42c5c) - 弃用
WebView.startSafeBrowsing
。 (If5626)
版本 1.13.0-rc01
2025年2月26日
androidx.webkit:webkit:1.13.0-rc01
已发布。此版本自1.13.0-beta01
版本以来没有变化。
版本 1.13.0-beta01
2025年2月12日
androidx.webkit:webkit:1.13.0-beta01
已发布。版本 1.13.0-beta01 包含这些提交。
API 变更
- 将 Async 后缀添加到预渲染 API。将
NoVarySearch
中的任何 Data 重命名为 Header,以反映新名称。 (Ie91c9) - 向 URL 预渲染 API 添加执行程序参数。此外,限制 API 只能从 UI 线程调用。 (I50520)
- 添加 API 以配置配置文件预取请求的缓存配置。它也适用于与此配置文件关联的
WebViews
发起的预渲染请求。 (Iebb6e)
Bug 修复
- 更改
URLUtilCompat.guessFileName
的行为,仅使用mimeType
参数来建议从 URL 参数派生的文件名扩展名。 (I53ecd, b/382864232)
版本 1.13.0-alpha03
2025年1月15日
androidx.webkit:webkit:1.13.0-alpha03
已发布。版本 1.13.0-alpha03 包含这些提交。
新功能
- 引入了一个新的实验性 URL 预渲染 API,允许开发人员推测性地预渲染候选 URL,从而实现更快的导航。 (I0cfe7)
- 引入了一组新的 API,用于删除
WebView
存储的浏览数据。WebStorageCompat
中的新 API 应优先于android.webkit.WebStorage
中的现有 API,因为它们将保证删除所有本地存储,包括网络缓存和 Cookie,以及任何已安装的服务工作线程。如果将来引入新的存储 API,这些新方法将更新以包含它们所删除的存储。 (Iad54f, b/382273208) - 添加
setPartitionedCookiesEnabled
API。这将允许开发人员在WebView
中启用和禁用分区 Cookie。 (Ic506a, b/364904765)
API 变更
- 将 Prefetch API 的线程要求更改为仅在 UI 线程上调用。 (I866b5)
- 更新
WebAuthn
方法以强调它们必须在 UI 线程上调用。此要求已由实现强制执行,此更改仅添加相关注解。 (I6d6ba)
版本 1.13.0-alpha02
2024年12月11日
androidx.webkit:webkit:1.13.0-alpha02
已发布。版本 1.13.0-alpha02 包含这些提交。
新功能
- 将套接字标记 API 添加到
WebView
,用于使用NetworkStatsManager
/TrafficStats
对WebView
的网络流量进行记账。此功能仅适用于WebView
M133。 (Ica441, b/374932688)
API 变更
- 通过将
PrefetchParameter
重命名为SpeculativeLoadingParamaters
,引入新的PrefetchNetworkException
,用OutcomeReceiverCompat
替换PrefetchOperationCallback
并更新 javadoc 来更新 Prefetch API。 (If5072) - 从 WebView 异步启动 API 获取诊断信息。
- 为应用程序提供一个选项,仅触发不阻塞 UI 线程的初始化。 (I9bf2b)
Bug 修复
- 此库现在使用JSpecify 空值注解,它们是类型使用。Kotlin 开发者应使用以下编译器参数来强制执行正确用法:
-Xjspecify-annotations=strict
(从 Kotlin 编译器 2.1.0 版本开始,这是默认设置)。 (I0e4c5, b/326456246)
版本 1.13.0-alpha01
2024年11月13日
androidx.webkit:webkit:1.13.0-alpha01
已发布。版本 1.13.0-alpha01 包含这些提交。
新功能
- 添加实验性
WebView
异步启动 API。 (I94b8a) - 配置文件中的 URL 预取:在 Profile 中引入了一个新的 API,允许开发人员触发 URL 预取。预取清除:添加了一个 API 来清除正在进行的预取。 (I42c5c)
API 变更
- 弃用
WebView.startSafeBrowsing
。 (If5626)
版本 1.12
版本 1.12.1
2024年10月2日
androidx.webkit:webkit:1.12.1
已发布。版本 1.12.1 包含这些提交。
Bug 修复
- 解决导致 1.12.0 API 在发布版中不可用的问题。
版本 1.12.0
2024年9月18日
androidx.webkit:webkit:1.12.0
已发布。版本 1.12.0 包含这些提交。
自 1.11.0 以来的重要变更
- 在
WebSettingsCompat
中添加了一个新 API,用于启用/禁用此WebSettings
的后退/前进缓存。此 API 为实验性,将来可能会更改。 (aosp/3111705) - 在
WebSettingsCompat
中添加了一个新 API,用于控制此WebSettings
的推测性加载行为。目前只有预渲染可用。此 API 为实验性,将来可能会更改。 (I13962) - 添加了一个新 API,用于在
WebView
中启用Web 身份验证。开发人员可以使用WebSettingsCompat#setWebAuthenticationSupport
为他们的应用程序启用/禁用WebView
中的WebAuthn
调用。 (I8187f)
版本 1.12.0-rc01
2024年9月4日
androidx.webkit:webkit:1.12.0-rc01
已发布。此版本自1.12.0-beta01
发布以来没有变化。
版本 1.12.0-beta01
2024年8月21日
androidx.webkit:webkit:1.12.0-beta01
已发布。版本 1.12.0-beta01 包含这些提交。
Bug 修复
- 删除了对新平台 API 的手动访问概述,因为在使用 R8 和 AGP 7.3 或更高版本(例如 R8 版本 3.3)时,以及在使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)时,API 建模会自动完成此操作。不使用 AGP 的客户端建议更新到 D8 版本 8.1 或更高版本。有关更多详细信息,请参阅此文章。 (Ia60e0, b/345472586)
版本 1.12.0-alpha02
2024年6月12日
androidx.webkit:webkit:1.12.0-alpha02
已发布。版本 1.12.0-alpha02 包含这些提交。
新功能
- 在
WebSettingsCompat
中添加了一个新 API,用于启用/禁用BackForwardCache
。此 API 为实验性,将来可能会更改。 (I64a38) - 在
WebSettingsCompat
中添加了一个新 API,用于控制此 WebSettings 的推测性加载行为。目前只有预渲染可用。此 API 为实验性,将来可能会更改。 (I13962)
API 变更
- 现在,某些方法已酌情使用
@UiThread
进行文档化。 (I6c7e0), (I44541) - 线程安全的方法现在已使用
@AnyThread
进行文档化。 (I70189) - 将
minSdkVersion
从 19 增加到 21。 (Id7a43)
版本 1.12.0-alpha01
2024年4月17日
androidx.webkit:webkit:1.12.0-alpha01
已发布。版本 1.12.0-alpha01 包含这些提交。
API 变更
- 添加了一个新 API,用于在
WebView. Developers
中启用Web 身份验证可以使用WebSettingsCompat#setWebAuthenticationSupport
为他们的应用程序启用/禁用WebView
中的WebAuthn
调用。 (I8187f)
版本 1.11
版本 1.11.0
2024年5月1日
androidx.webkit:webkit:1.11.0
已发布。版本 1.11.0 包含这些提交。
自 1.10.0 以来的重要变更
- 允许应用程序通过新的
setAudioMuted
和isAudioMuted
API 控制WebView
中的音频播放,这类似于 Chrome 中的标签页静音。 - 引入了
URLUtilCompat
,它支持解析使用RFC 6266中定义的filename*
编码值属性的Content-Disposition
头。兼容性 API 还直接公开了一种方法,用于解析不需要基于 URL 和 MIME 类型建议文件名的Content-Disposition
头。
版本 1.11.0-rc01
2024年4月3日
androidx.webkit:webkit:1.11.0-rc01
已发布。此版本自1.11.0-beta01
发布以来没有变化。
版本 1.11.0-beta01
2024年3月20日
androidx.webkit:webkit:1.11.0-beta01
已发布,无显著变化。版本 1.11.0-beta01 包含这些提交。
版本 1.11.0-alpha02
2024年2月21日
androidx.webkit:webkit:1.11.0-alpha02
已发布。版本 1.11.0-alpha02 包含这些提交。
新功能
- 添加
setAudioMuted
和isAudioMuted
方法用于静音(和取消静音)WebViews
。此方法将允许您阻止WebView
播放音频。 (Ie7a33)
API 变更
URLUtilCompat
被设置为 final,因为它不应该被子类化。 (I49ec1)
版本 1.11.0-alpha01
2024年2月7日
androidx.webkit:webkit:1.11.0-alpha01
已发布。版本 1.11.0-alpha01 包含这些提交。
新功能
- 添加了对
URLUtil.guessFileName
的兼容性。URLUtilCompat
中的兼容版本支持解析使用RFC 6266中定义的filename*
编码值属性的Content-Disposition
头。兼容性 API 还直接公开了一种方法,用于解析不需要基于 URL 和 MIME 类型建议文件名的Content-Disposition
头。 (If6ae7, b/309927164)
版本 1.10
版本 1.10.0
2024年1月24日
androidx.webkit:webkit:1.10.0
已发布。版本 1.10.0 包含这些提交。
自 1.9.0 以来的重要变更
- 在WebSettingsCompat 中添加了一个新 API,用于控制实验性Android WebView Media Integrity API的行为,可以完全禁用该 API,或者限制在 API 响应中共享应用程序身份。这可以针对所有来源和每个来源进行切换。
版本 1.10.0-rc01
2024年1月10日
androidx.webkit:webkit:1.10.0-rc01
已发布。此版本自1.10.0-beta01
发布以来没有变化。
版本 1.10.0-beta01
2023年12月13日
androidx.webkit:webkit:1.10.0-beta01
已发布。版本 1.10.0-beta01 包含这些提交。
- 自
1.10.0-alpha01
以来无功能更改。
版本 1.10.0-alpha01
2023年11月29日
androidx.webkit:webkit:1.10.0-alpha01
已发布。版本 1.10.0-alpha01 包含这些提交。
新功能
- 在
WebSettingsCompat
中添加了一个新 API,用于控制实验性Android WebView Media Integrity API的行为,可以完全禁用该 API,或者限制在 API 响应中共享应用程序身份。这可以针对所有来源和每个来源进行切换。
版本 1.9
版本 1.9.0
2023年11月29日
androidx.webkit:webkit:1.9.0
已发布。版本 1.9.0 包含这些提交。
自 1.8.0 以来的重要变更
- 添加了新的 WebView 多配置文件 API。
- Profile接口具有不同的 API,可用于获取与此配置文件关联的数据,例如其名称、GeoLocationPermissions、ServiceWorkerController、CookieManager和WebStorage。这些对象特定于该配置文件,信息不会在应用程序的不同配置文件之间共享。
- 通过WebViewCompat#setProfile方法可以更改
WebView
实例使用的配置文件,并通过WebViewCompat#getProfile方法可以检索配置文件。 - 新引入的ProfileStore允许您管理应用程序中可用的配置文件,包括默认配置文件。
- 现有的 WebView API,例如CookieManager#getInstance,将继续在默认配置文件上运行。
- 添加了在页面加载前注入和运行 Javascript 的 API。
- WebViewCompat#addDocumentStartJavascript API 允许应用将脚本注入
WebView
,这些脚本保证在任何页面脚本执行之前运行。该 API 允许应用为脚本指定目标来源列表以启用,确保它只在预期页面上运行。与WebView#evaluateJavascript不同,此 API 允许在嵌入式 Iframes 加载时执行脚本。应用可以将此新 API 与WebViewCompat#addWebMessageListener结合使用,以可靠的方式与页面中的 JavaScript 建立双向通信。
- WebViewCompat#addDocumentStartJavascript API 允许应用将脚本注入
- 添加了用于修改隐私沙盒归因报告事件注册方式的 API。
- 我们引入了一个新 API WebSettingsCompat#setAttributionRegistrationBehavior,它允许开发者配置归因来源和触发器是注册为来自应用本身,还是来自 WebView 中的网页内容。此方法也可用于在 WebView 中禁用归因报告。此外,我们还添加了一个新 API
WebSettingsCompat#getAttributionRegistrationBehavior
来获取当前行为。 - 有关更多信息,请参阅隐私沙盒文档。
- 我们引入了一个新 API WebSettingsCompat#setAttributionRegistrationBehavior,它允许开发者配置归因来源和触发器是注册为来自应用本身,还是来自 WebView 中的网页内容。此方法也可用于在 WebView 中禁用归因报告。此外,我们还添加了一个新 API
- 添加了用于覆盖用户代理元数据以获取客户端提示的 API。
- 我们引入了一个新 API WebSettingsCompat#setUserAgentMetadata 来覆盖 WebView 中用于填充用户代理客户端提示的用户代理元数据,我们还添加了另一个新 API WebSettingsCompat#getUserAgentMetadata 来获取当前用户代理覆盖。我们鼓励应用使用新的 API 来设置正确的覆盖值,而不是依赖于更改默认用户代理字符串,以确保在所有情况下都使用正确的值。
版本 1.9.0-rc01
2023年11月15日
androidx.webkit:webkit:1.9.0-rc01
已发布。此版本自1.9.0-beta01
发布以来没有变化。
版本 1.9.0-beta01
2023年11月1日
androidx.webkit:webkit:1.9.0-beta01
已发布。版本 1.9.0-beta01 包含这些提交。
API 变更
- 解决用户代理元数据 API 的空值问题。我们更新了
BrandVersion
类以使用构建器模式,使UserAgentMetadata
类的 getter 和 setter 的空值一致。 (Ibf195) - 使用
@UiThread
注解ProfileStore
、WebViewCompat#setProfile
和WebViewCompat.getProfile
。 (I499b2)
版本 1.9.0-alpha01
2023年10月18日
androidx.webkit:webkit:1.9.0-alpha01
已发布。版本 1.9.0-alpha01 包含这些提交。
新功能
- 我们添加了多配置文件 API,允许您在
WebViews
之间拥有独立的浏览会话,每个配置文件都有自己的数据(例如 Cookie)。您可以创建配置文件,将它们分配给WebView
实例,并在以后检索它们以进行任何数据访问。有一个单例类ProfileStore
,可帮助您通过getOrCreateProfile
、getProfile
、getAllProfileNames
和deleteProfile
等 API 管理配置文件的创建或删除。Profile
类将具有不同的 API,用于获取与此配置文件关联的数据,例如其名称、GeoLocationPermissions
、ServiceWorkerController
、CookieManager
和WebStorage
。每个WebView
默认将使用默认配置文件运行,但是,您可以使用WebViewCompat#setProfile
更改它。与此相关的是,WebView
的配置文件可以使用WebViewCompat#getProfile
检索。 (I32d22) - 添加 API 以修改归因报告事件的注册方式。我们引入了一个新的 API
WebSettingsCompat#setAttributionRegistrationBehavior
,它允许开发人员配置来源和触发器是注册为来自应用程序本身,还是来自WebView
中的网页内容。此方法也可以用于在WebView
中禁用归因报告。此外,我们还添加了一个新的 APIWebSettingsCompat#getAttributionRegistrationBehavior
来获取当前行为。有关更多信息,请参阅隐私沙盒文档。 (I661f2) - 添加 API 以覆盖用户代理元数据。我们引入了一个新的 API
WebSettingsCompat#setUserAgentMetadata
来覆盖 WebView 的用户代理元数据,该数据用于填充用户代理客户端提示,我们还添加了另一个新的 APIWebSettingsCompat#getUserAgentMetadata
来获取当前用户代理覆盖。我们鼓励应用程序使用新的 API 来设置正确的覆盖值,而不是依赖于更改用户代理。 (I74500) - 添加 API 以注入 Javascript,使其在页面加载期间运行。
WebViewCompat.addDocumentStartJavascript
API 允许应用程序将脚本注入 WebView,这些脚本将在任何页面脚本执行之前运行。该 API 允许应用程序为脚本指定目标来源列表以启用,确保它只在预期页面上运行。与WebView.evaluateJavascript
不同,此 API 允许在嵌入式 Iframes 加载时执行脚本。 (Ide063)
版本 1.8
版本 1.8.0
2023年9月6日
androidx.webkit:webkit:1.8.0
已发布。版本 1.8.0 包含这些提交。
自 1.7.0 以来的重要变更
- 添加了对通过
WebMessagePortCompat#postMessage
、JavaScriptReplyProxy#postMessage
和WebViewCompat#postWebMessage
传递ArrayBuffer
的支持,通过WebMessagePortCompat
和WebMessageListener
接收来自 JavaScript 的ArrayBuffer
,以及通过WebMessagePortCompat
接收来自 JavaScript 的可传输ArrayBuffer
。 (aosp/2596550, b/251152171)
版本 1.8.0-rc01
2023年8月9日
androidx.webkit:webkit:1.8.0-rc01
已发布,自1.8.0-beta01
以来没有变化。版本 1.8.0-rc01 包含这些提交。
版本 1.8.0-beta01
2023年7月26日
androidx.webkit:webkit:1.8.0-beta01
已发布,自1.8.0-alpha01
以来没有变化。版本 1.8.0-beta01 包含这些提交。
版本 1.8.0-alpha01
2023年6月7日
androidx.webkit:webkit:1.8.0-alpha01
已发布。版本 1.8.0-alpha01 包含这些提交。
API 变更
- 参阅“外部贡献”部分。
外部贡献
- 添加了对通过
WebMessagePortCompat#postMessage
、JsReplyProxy#postMessage
和WebViewCompat#postWebMessage
传递ArrayBuffer
的支持,通过WebMessagePortCompat
和WebMessageListener
接收来自 JavaScript 的ArrayBuffer
,以及通过WebMessagePortCompat
接收来自 JavaScript 的可传输ArrayBuffer
。请注意,此 API 仅在WebView
版本 116 及更高版本中可用。 (Ie7567, b/251152171)
版本 1.7
版本 1.7.0
2023年5月24日
androidx.webkit:webkit:1.7.0
已发布。版本 1.7.0 包含这些提交。
自 1.6.0 以来的重要变更
- 我们添加了对
WebView
中图片拖放的支持。您可以通过在应用的清单中添加新的DropDataContentProvider
(如类文档中所述)来使您的用户能够从WebView
中拖出图片。 - 我们添加了
ProcessGlobalConfig#setDirectoryBasePaths(Context,File,File)
API,该 API 可用于设置WebView
将用于当前进程的基本目录。与ProcessGlobalConfig
上的所有方法一样,此方法必须在WebView
的第一个实例实例化之前调用。添加此方法是为了提供 Android 框架调整WebView
设置的功能。对于通用应用程序,不建议使用此方法。
版本 1.7.0-rc01
2023年5月10日
androidx.webkit:webkit:1.7.0-rc01
已发布,自1.7.0-beta01
以来没有变化。版本 1.7.0-rc01 包含这些提交。
版本 1.7.0-beta01
2023年4月5日
androidx.webkit:webkit:1.7.0-beta01
已发布。版本 1.7.0-beta01 包含这些提交。
API 变更
- 对功能标志和方法名称进行了微小更改,并使
setDirectoryBasePaths()
接受 File 而不是 String (Ib0d0a)
版本 1.7.0-alpha03
2023年3月8日
androidx.webkit:webkit:1.7.0-alpha03
已发布。版本 1.7.0-alpha03 包含这些提交。
API 变更
- 添加
ProcessGlobalConfig#setDirectoryBasePath(String, String)
API,可用于设置WebView
将用于当前进程的基本目录。 (Ibd1a1, b/250553687)
Bug 修复
- 修复了在使用
DexGuard
时导致构建错误的无效ProGuard
规则 (Ia65c2, b/270034835)
版本 1.7.0-alpha02
2023年2月8日
androidx.webkit:webkit:1.7.0-alpha02
已发布。版本 1.7.0-alpha02 包含这些提交。
Bug 修复
DropDataContentProvider
的文档错误。
版本 1.7.0-alpha01
2023年1月25日
androidx.webkit:webkit:1.7.0-alpha01
已发布。版本 1.7.0-alpha01 包含这些提交。
新功能
版本 1.6
版本 1.6.1
2023年3月22日
androidx.webkit:webkit:1.6.1
已发布。版本 1.6.1 包含这些提交。
Bug 修复
- 修复 proguard 解析错误 (Ia65c2)
版本 1.6.0
2023年1月25日
androidx.webkit:webkit:1.6.0
已发布。版本 1.6.0 包含这些提交。
自 1.5.0 以来的重要变更
- 添加了一个新的ProcessGlobalConfig API,允许应用程序提供需要在加载 WebView 之前设置的配置设置,例如 WebView 数据目录后缀。配置应在应用程序启动时尽早设置和应用,以确保在任何其他线程调用加载
WebView
到进程的方法之前发生。 - 添加了一个新的CookieManagerCompat API,通过新的
getCookieInfo
方法扩展了android.webkit.CookieManager,该方法检索在特定 URL 上设置的所有 Cookie 的所有属性。这与CookieManager
中现有的 getCookie API 不同,后者仅返回 Cookie 的名称和值属性。 WebSettingsCompat
新增方法,用于启用/禁用WebView
中由管理员设置的EnterpriseAuthenticationAppLinkPolicy
的效果,以及获取当前设置。此功能允许 WebView 打开身份验证应用,而不是打开身份验证 URL。此功能对不受企业策略管理的设备没有影响。- 在
WebSettingsCompat
中添加了一个新 API,允许应用程序明确地将应用程序包名发送到X-Requested-With
头到允许列表中的源。此头传统上由WebView
在每次请求中发送。
版本 1.6.0-rc01
2023年1月11日
androidx.webkit:webkit:1.6.0-rc01
已发布。版本 1.6.0-rc01 包含这些提交。
Bug 修复
- 修复了在 SDK < L 上运行时
WebViewFeature.isStartupFeatureSupported(Context, String)
中的NullPointerException
。 (Ic7292)
版本 1.6.0-beta01
2022年12月7日
androidx.webkit:webkit:1.6.0-beta01
已发布。版本 1.6.0-beta01 包含这些提交。
API 变更
ProcessGlobalConfig
已更改为使用普通构造函数和静态 apply 方法。apply 方法每个进程只能调用一次,并且应尽早调用,如果调用多次将抛出IllegalStateException
。ProcessGlobalConfig
对象不再对 setter 可以调用的次数有任何限制。 (I456c3)
版本 1.6.0-alpha03
2022年11月9日
androidx.webkit:webkit:1.6.0-alpha03
已发布。版本 1.6.0-alpha03 包含这些提交。
新功能
- 添加
ProcessGlobalConfig
类,使用户能够在加载WebView
之前设置进程全局配置。WebView
有一些进程全局配置参数,一旦WebView
被加载,这些参数就无法更改(例如WebView
数据目录)。此类别允许应用程序设置这些参数。配置应在应用程序启动时尽早设置和应用,以确保在任何其他线程调用加载WebView
到进程的方法之前发生。 (I7c0e0, b/250553687) - 添加新 API,允许应用程序将应用程序包名称明确发送到允许列表中的源的 X-Requested-With 标头。该标头传统上从
WebView
的每个请求中发送。 (I0adfe, b/226552535)
API 变更
WebSettingsCompat#setAlgorithmicDarkeningAllowed
API 在WebView
版本 105 及更高版本的所有 Android 版本上都受支持。以前的WebView
版本仅在 Android Q 及更高版本上支持该 API。因此,此 API 不再标记为@RequiresApi(Build.VERSION_CODES.Q)
。 (I3ac1d)
版本 1.6.0-alpha02
2022年10月24日
androidx.webkit:webkit:1.6.0-alpha02
已发布。版本 1.6.0-alpha02 包含这些提交。
新功能
- 添加了一个新的
CookieManagerCompat
类以及一个getCookieInfo
API,它检索在特定 URL 上设置的所有 Cookie 的所有属性。这与CookieManager
中现有的getCookie
API 不同,后者仅返回 Cookie 的名称和值属性。 (I07365, b/242161756)
版本 1.6.0-alpha01
2022年8月24日
androidx.webkit:webkit:1.6.0-alpha01
已发布。版本 1.6.0-alpha01 包含这些提交。
新功能
- 在
WebSettingsCompat
中添加了 API,用于启用/禁用EnterpriseAuthenticationAppLinkPolicy
(如果由管理员在WebView
中设置)的效果。此功能允许WebView
打开身份验证应用程序,而不是打开身份验证 URL。此功能对不受企业策略管理的设备没有影响。
版本 1.5.0
版本 1.5.0
2022年8月24日
androidx.webkit:webkit:1.5.0
已发布。版本 1.5.0 包含这些提交。
自 1.4.0 以来的重要变更
WebSettingsCompat
上的新setAlgorithmicDarkeningAllowed
API 替换了旧的setForceDark
和setForceDarkStrategy
API。目标 SDK 33 及更高版本 (T) 的应用程序应使用新的 API,因为旧的 API 对这些应用程序将不再有任何影响。- 现在可以通过将
setReverseBypassEnabled
设置为true
,在ProxyCofig.Builder
中设置要使用配置代理的 URL 允许列表。当此功能生效时,所有其他 URL 将绕过配置的代理。
版本 1.5.0-rc01
2022年8月10日
androidx.webkit:webkit:1.5.0-rc01
已发布,自1.5.0-beta01
以来没有变化。版本 1.5.0-rc01 包含这些提交。
版本 1.5.0-beta01
2022年6月29日
androidx.webkit:webkit:1.5.0-beta01
已发布。版本 1.5.0-beta01 包含这些提交。
API 变更
- Alogrithimic Darkening 相关 API 现在被注解为需要 API 级别 Q。该 API 对 API 级别 < Q 不会产生任何影响,因为这些设备上没有暗色主题选项。 (I0905e)
版本 1.5.0-alpha01
2022年5月18日
androidx.webkit:webkit:1.5.0-alpha01
已发布。版本 1.5.0-alpha01 包含这些提交。
新功能
- 在
WebViewCompat
上添加了一个新的getVariationsHeader()
方法,用于获取WebView
发送的 X-Client-Data 标头值。返回的值将是 base64 编码的ClientVariations protobuf。 - 在
WebSettingsCompat
上添加 API,以允许/禁止目标 SDK >= 33 的应用程序进行算法变暗。 (I29597)
API 变更
- 在
ProxyCofig.Builder
中添加了一个新方法来设置反向绕过。将反向绕过设置为 true 意味着只有绕过列表中的 URL 会使用代理设置。 (I9eaa2, b/168728599)
Bug 修复
- 修复了暗色主题文档中的一个拼写错误。 (I36ebf, b/194343633)
- 修复了
WebViewAssetLoader.Builder
方法意外地具有顺序依赖性的错误。 (If420d, b/182196765)
版本 1.4.0
版本 1.4.0
2020年12月16日
androidx.webkit:webkit:1.4.0
已发布。版本 1.4.0 包含这些提交。
自 1.3.0 以来的主要变更
- 添加了一个新的
setSafeBrowsingAllowlist()
API,以替换setSafeBrowsingWhitelist()
。这有助于应用程序更新其代码以避免非包容性术语,同时仍支持与已弃用 API 相同的 Android SDK 和 WebView 版本范围。 - 修复了 setProxyOverride 中导致回退规则未正确应用的错误。
版本 1.4.0-rc02
2020年12月2日
androidx.webkit:webkit:1.4.0-rc02
已发布。版本 1.4.0-rc02 包含这些提交。
Bug 修复
- 修复了使用 setProxyOverride 时回退规则未正确应用的问题。
版本 1.4.0-rc01
2020年11月11日
androidx.webkit:webkit:1.4.0-rc01
已发布,自1.4.0-beta01
以来没有变化。版本 1.4.0-rc01 包含这些提交。
版本 1.4.0-beta01
2020年10月14日
androidx.webkit:webkit:1.4.0-beta01
发布,与 1.4.0-alpha01
相比没有变化。 版本 1.4.0-beta01 包含这些提交。
版本 1.4.0-alpha01
2020 年 9 月 16 日
androidx.webkit:webkit:1.4.0-alpha01
发布。 版本 1.4.0-alpha01 包含这些提交。
API 变更
- 新增了
WebViewCompat#setSafeBrowsingAllowlist()
API,以替换setSafeBrowsingWhitelist()
。这有助于应用更新其代码以避免使用非包容性术语,同时仍能像已弃用的 API 一样支持相同范围的 Android SDK 和 WebView 版本。 (I8d65d)
版本 1.3.0
版本 1.3.0
2020 年 8 月 19 日
androidx.webkit:webkit:1.3.0
发布。 版本 1.3.0 包含这些提交。
自 1.2.0 以来的主要变更
- ForceDarkStrategy API 提供了对 WebView 深色模式的更多控制(CSS/网页内容深色模式与自动深色模式)。
- WebMessageListener 及其相关 API 提供了一种简单且安全的机制,用于在网页内容和 WebView 嵌入器应用之间建立通信。
isMultiProcessEnabled
API 可用于检查 WebView 是否在多进程中运行。这从 Android O 开始成为可能,这意味着网页内容将在独立于应用进程的沙盒渲染器进程中渲染。此沙盒渲染器可以与同一应用中的其他 WebView 共享,但不会与其他应用进程共享。
版本 1.3.0-rc02
2020 年 8 月 5 日
androidx.webkit:webkit:1.3.0-rc02
发布。 版本 1.3.0-rc02 包含这些提交。
Bug 修复
- 这解决了兼容性问题,即如果您的应用通过 Android Studio 即时运行启动,
WebMessageListener
在本地开发期间有时会崩溃。
版本 1.3.0-rc01
2020 年 6 月 24 日
androidx.webkit:webkit:1.3.0-rc01
发布,与 1.3.0-beta01
相比没有变化。 版本 1.3.0-rc01 包含这些提交。
版本 1.3.0-beta01
2020 年 6 月 10 日
androidx.webkit:webkit:1.3.0-beta01
发布。 版本 1.3.0-beta01 包含这些提交。
新功能
ForceDarkStrategy
API 可用于控制 WebView 深色模式(CSS/网页内容深色模式与自动深色模式)。WebMessageListener
API 提供了一种简单且安全的机制,用于在网页内容和 WebView 嵌入器应用之间建立通信。MultiProcessEnabled
API 可用于检查 WebView 是否在多进程模式下运行。
版本 1.3.0-alpha03
2020 年 5 月 27 日
androidx.webkit:webkit:1.3.0-alpha03
发布。 版本 1.3.0-alpha03 包含这些提交。
API 变更
addWebMessageListener
方法现在接收一个允许的源规则的Set<String>
(以前是List<String>
)。
版本 1.3.0-alpha02
2020 年 4 月 29 日
androidx.webkit:webkit:1.3.0-alpha02
发布。 版本 1.3.0-alpha02 包含这些提交。
新功能
- MultiProcessEnabled API 可用于检查 WebView 是否在多进程模式下运行。
API 变更
- 所有深色策略常量现在都以
DARK_STRATEGY
为前缀。
版本 1.3.0-alpha01
2020 年 4 月 15 日
androidx.webkit:webkit:1.3.0-alpha01
发布。 版本 1.3.0-alpha01 包含这些提交。
新功能
ForceDarkStrategy
API 可用于控制WebView
深色模式(CSS/网页内容深色模式与自动深色模式)。WebMessageListener
API 提供了一种简单且安全的机制,用于在网页内容和 WebView 嵌入器应用之间建立通信。
版本 1.2.0
版本 1.2.0
2020 年 3 月 4 日
androidx.webkit:webkit:1.2.0
发布。 版本 1.2.0 包含这些提交。
自 1.1.0 以来的主要变更
- 新增了 ForceDark API,用于控制 WebView 是否应以深色模式渲染。
版本 1.2.0-rc01
2020 年 2 月 19 日
androidx.webkit:webkit:1.2.0-rc01
发布,与 1.2.0-beta01
相比没有变化。 版本 1.2.0-rc01 包含这些提交。
版本 1.2.0-beta01
2020 年 2 月 5 日
androidx.webkit:webkit:1.2.0-beta01
发布,与 1.2.0-alpha01
相比没有变化。 版本 1.2.0-beta01 包含这些提交。
版本 1.2.0-alpha01
2019 年 12 月 18 日
androidx.webkit:webkit:1.2.0-alpha01
发布。 版本 1.2.0-alpha01 包含这些提交。
新功能
- ForceDark API 可用于控制 WebView 是否应以深色模式渲染。
版本 1.1.0
版本 1.1.0
2019 年 11 月 7 日
androidx.webkit:webkit:1.1.0
发布。 版本 1.1.0 包含这些提交。
自 1.0.0 以来的重要变更
- Getter API,用于补充 setWebViewClient() 和 setWebChromeClient()。
- ProxyController API,用于为应用的 WebView 设置网络请求代理。
- WebViewAssetLoader API,通过请求拦截简化从应用数据目录加载 APK 资产、资源和文件。这允许访问网页和本地资源,而无需禁用 CORS。
- TracingController API,用于收集 WebView 跟踪信息以进行调试。
- RenderProcess API,用于管理 WebView 渲染器服务,并检测内容行为不当导致 WebView 渲染器无响应的情况。
- 更新了现有 API,以包含可空性 (
@NonNull
,@Nullable
) 和线程 (@UiThread
,@WorkerThread
) 注解。
版本 1.1.0-rc01
2019 年 10 月 9 日
androidx.webkit:webkit:1.1.0-rc01
发布。 版本 1.1.0-rc01 包含这些提交。
bug 修复
- 修复了当传递 null 客户端时
setWebViewRenderProcessClient()
可能会崩溃的问题。
版本 1.1.0-beta01
2019 年 9 月 5 日
androidx.webkit:webkit:1.1.0-beta01
发布。此版本中包含的提交可在此处找到。
新功能
WebViewAssetLoader
中新增了InternalStoragePathHandler
,用于从应用的数据目录加载文件。
API 变更
ProxyConfig#getProxyRules()
现在返回一个不可修改的ProxyRule
实例列表,ProxyRule
是一个用于保存方案过滤器及其对应代理 URL 的新类。
bug 修复
- 当无法从文件路径猜测 MIME 类型时,
WebViewAssetLoader
默认为“text/plain”MIME 类型(而不是 null)。 - 当加载路径名中包含特殊字符的文件时,
WebViewAssetLoader
不再抛出NullPointerException
。
版本 1.1.0-alpha02
2019 年 8 月 7 日
androidx.webkit:webkit:1.1.0-alpha02
发布。此版本中包含的提交可在此处找到。
新功能
WebViewAssetLoader
暴露了PathHandler
接口,允许应用创建自定义路径处理功能。
API 变更
WebViewAssetLoader
现在是一个最终类 (final class),因为它不应被子类化。WebViewAssetLoader#PathHandler
的实现现在是 public 和 final 的。- ProxyConfig 方法名称的细微更改。
ProxyController
:新增方法addDirect()
和addDirect(String)
,用于直接连接到服务器;移除了 DIRECT 字符串。- 更新了现有 API,以包含可空性 (
@NonNull
,@Nullable
) 和线程 (@UiThread
,@WorkerThread
) 注解。
版本 1.1.0-alpha01
2019 年 5 月 7 日
androidx.webkit:webkit:1.1.0-alpha01
发布。此版本中包含的提交可在此处找到。
新功能
- Getter API,用于补充
setWebViewClient()
和setWebChromeClient()
- ProxyController API,用于为应用的 WebView 设置网络请求代理。
- AssetLoader API,通过请求拦截简化 APK 资产和资源的加载,允许访问网页资源而无需禁用 CORS。
- TracingController API,用于收集 WebView 跟踪信息以进行调试。
- RenderProcess API,用于管理 WebView 渲染器服务,并检测内容行为不当导致 WebView 渲染器无响应的情况。
bug 修复
- 对现有 API 的文档格式进行了少量修复。