Webkit
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 7 月 2 日 | 1.14.0 | - | - | 1.15.0-alpha01 |
宣告依附元件
如要在 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。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
1.15 版
1.15.0-alpha01 版
2025 年 7 月 2 日
發布 androidx.webkit:webkit:1.15.0-alpha01
。1.15.0-alpha01 版包含這些修訂項目。
新功能
- 新增 API,可在傳送至特定來源的要求中設定 HTTP 標頭名稱/值配對。
應用程式可透過Profile.setOriginMatchedHeader
方法指定,當從使用指定 Profile 的 WebView 和服務工作站傳送要求時,應在所有傳送至符合所提供允許清單來源的 HTTP/HTTPS 要求中,設定標頭名稱和值。每個標頭名稱只能對應一個值,如果標頭名稱已設定,API 會擲回例外狀況。
使用Profile.clearOriginMatchedHeader
移除現有對應項目,並使用Profile.clearAllOriginMatchedHeaders
移除所有對應項目。(Ida7f1、b/419469873) - 新版 API 可在 WebView 和 Service Worker 的
shouldInterceptRequest
回呼中存取及設定 Cookie。
應用程式開發人員目前可透過shouldInterceptRequest
存取CookieManager
API,現在只要呼叫setIncludeCookiesOnShouldInterceptRequest
,即可直接啟用 Cookie 標頭。這會導致 WebView 將Cookie
標頭新增至 WebResourceRequest.getRequestHeaders() 對應,這會是適用於要求的確切 Cookie。這也會正確處理任何分區 Cookie。
應用程式可透過新加入的WebResourceResponseCompat.setCookies
API 提供Set-Cookie
標頭值。WebView 會在處理回應時,一併處理您新增的Set-Cookie
值。(Idbfd1、b/414769380) - 新的實驗性 API,可預先啟動
Profile
的轉譯器程序。
如果應用程式的 WebView 生命週期較為複雜,可以使用這個 API 確保轉譯器程序正在執行,即使所有 WebView 執行個體都已毀損也沒問題。(Ia8fc8)
API 變更
- 在實驗性 Navigation 介面中新增方法,以提供導覽的網址。(I1c6c0)
- 更新「設定檔預先擷取」功能名稱,明確指出現在可以在背景執行緒上叫用 Prefetch API。(I7c83a)
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()
的說明文件。 - 推出實驗性 Navigation API,可在
WebView
中強化網站瀏覽追蹤和管理功能。這些 API 提供導覽事件的詳細資訊,如要開始使用,請呼叫 WebViewCompat.setNavigationClient,並實作新的 WebNaviagationClient 介面,取得網頁導覽的詳細資訊。如要進一步瞭解導覽生命週期,請參閱「導覽簡報的生命週期」。
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
介面:提供導覽的詳細資訊,包括網址、網頁啟動狀態、同文件狀態、重新載入狀態、歷史記錄狀態、返回/前進狀態、提交狀態、錯誤網頁狀態、狀態碼和工作階段還原狀態。Navigation
物件是每次導覽的專屬 ID,可讓開發人員將相關導覽事件相互關聯。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 版以來的重要變更
- 推出新的實驗性 API,供開發人員預先算繪候選網址,加快瀏覽速度。(I0cfe7)
- 推出一組新的 API,可刪除
WebView
儲存的瀏覽資料。建議使用WebStorageCompat
中的新 API,而非android.webkit.WebStorage
中的現有 API,因為新 API 可確保刪除所有本機儲存空間 (包括網路快取和 Cookie),以及所有已安裝的 Service Worker。如果日後推出新的儲存空間 API,這些新方法會更新,將其納入刪除的儲存空間。(Iad54f、b/382273208) - 新增
setPartitionedCookiesEnabled
API。開發人員將可在WebView
中啟用及停用分割區 Cookie。(Ic506a、b/364904765) - 在
WebView
中新增 Socket Tagging API,即可使用NetworkStatsManager
/TrafficStats
統計WebView
的網路流量。這項功能僅適用於WebView
M133 以上版本。(Ica441、b/374932688) - 新增實驗性
WebView
非同步啟動 API。(I94b8a) - 設定檔中的網址預先擷取:
Profile
中新增了 API,可供開發人員觸發網址預先擷取作業。清除預先擷取:新增 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 變更
- 在預先算繪 API 中新增 Async 後置字元。在
NoVarySearch
中將所有「Data」重新命名為「Header」,以反映新名稱。(Ie91c9) - 在網址預先算繪 API 中加入執行器參數。此外,也限制 API 只能從 UI 執行緒呼叫。(I50520)
- 新增 API,為設定檔預先擷取要求設定快取設定。這項限制也適用於從與這個設定檔相關聯的
WebViews
發出的預先算繪要求。(Iebb6e)
修正錯誤
- 變更
URLUtilCompat.guessFileName
的行為,只使用mimeType
參數,根據網址參數衍生出的檔案名稱建議副檔名。(I53ecd、b/382864232)
1.13.0-alpha03 版
2025 年 1 月 15 日
發布 androidx.webkit:webkit:1.13.0-alpha03
。1.13.0-alpha03 版包含這些修訂項目。
新功能
- 推出新的實驗性 API,供開發人員預先算繪候選網址,加快瀏覽速度。(I0cfe7)
- 推出一組新的 API,可刪除
WebView
儲存的瀏覽資料。建議使用WebStorageCompat
中的新 API,而非android.webkit.WebStorage
中的現有 API,因為新 API 可確保刪除所有本機儲存空間 (包括網路快取和 Cookie),以及所有已安裝的 Service Worker。如果日後推出新的儲存空間 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 版包含這些修訂項目。
新功能
- 在
WebView
中新增 Socket Tagging API,即可使用NetworkStatsManager
/TrafficStats
統計WebView
的網路流量。這項功能僅適用於WebView
M133 以上版本。(Ica441、b/374932688)
API 變更
- 更新 Prefetch API,方法是將
PrefetchParameter
重新命名為SpeculativeLoadingParamaters
、導入新的PrefetchNetworkException
、將PrefetchOperationCallback
替換為OutcomeReceiverCompat
,以及更新 Javadoc。(If5072) - 透過 WebView 非同步啟動 API 取得診斷資訊。
- 提供應用程式選項,只觸發不會封鎖 UI 執行緒的初始化作業。(I9bf2b)
修正錯誤
- 這個程式庫現在使用 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) - 在 Profile 中預先擷取網址:Profile 中新增了 API,可供開發人員觸發預先擷取網址。預先擷取清除:新增 API,可清除進行中的預先擷取作業。(I42c5c)
API 變更
- 淘汰
WebView.startSafeBrowsing
。(If5626)
1.12 版
1.12.1 版
2024 年 10 月 2 日
發布 androidx.webkit:webkit:1.12.1
。1.12.1 版包含這些修訂項目。
修正錯誤
- 解決導致 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
啟用/停用 BackForwardCache。這項 API 仍在實驗階段,日後可能會有變動。(aosp/3111705) - 在
WebSettingsCompat
中新增 API,控制這個WebSettings
的推測載入行為。目前僅提供預先算繪。這項 API 仍在實驗階段,日後可能會有變動。(I13962) - 新增 API,可在
WebView
中啟用網頁驗證。開發人員可以使用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 版包含這些修訂項目。
修正錯誤
- 移除手動列出新平台 API 存取權的步驟,因為使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,系統會透過 API 建模自動執行這項作業,而使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 時,所有建構作業都會自動執行這項作業。如果用戶端未使用 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 Authentication,並在WebView
中為使用WebSettingsCompat#setWebAuthenticationSupport
的應用程式啟用/停用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
,支援剖析使用filename*
編碼值屬性的Content-Disposition
標頭,如 RFC 6266 所定義。如果不需要根據網址和 MIME 類型建議檔案名稱,相容性 API 也會直接公開方法來剖析Content-Disposition
標頭。
1.11.0-rc01 版
2024 年 4 月 3 日
發布 androidx.webkit:webkit:1.11.0-rc01
。這個版本與 1.11.0-beta01
版相比沒有任何異動。
1.11.0-beta01 版
March 20, 2024
已發布「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
不應為子類別,因此設為最終類別。(I49ec1)
1.11.0-alpha01 版
2024 年 2 月 7 日
發布 androidx.webkit:webkit:1.11.0-alpha01
。1.11.0-alpha01 版包含以下修訂項目。
新功能
- 新增
URLUtil.guessFileName
的相容性。URLUtilCompat
中的相容性版本支援剖析使用filename*
編碼值屬性的Content-Disposition
標頭,如 RFC 6266 所定義。如果不需要根據網址和 MIME 類型建議的檔案名稱,相容性 API 也會直接公開方法來剖析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,可透過完全停用 API 或限制在 API 回應中分享應用程式身分,控管實驗性 Android WebView Media Integrity 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,可透過完全停用 API,或限制在 API 回應中分享應用程式 ID,控管實驗性 Android WebView 媒體完整性 API 的行為。您可以為所有來源或個別來源切換這項設定。
1.9 版
1.9.0 版
2023 年 11 月 29 日
發布 androidx.webkit:webkit:1.9.0
。1.9.0 版包含以下修訂項目。
自 1.8.0 版以來的重要變更
- 新增 WebView 的多設定檔 API。
- 設定檔介面提供不同的 API,可取得與設定檔相關聯的資料,例如名稱、GeoLocationPermissions、ServiceWorkerController、CookieManager 和 WebStorage。這些物件專屬於設定檔,應用程式中的不同設定檔不會共用資訊。
- 如要變更
WebView
執行個體使用的設定檔,可以使用 WebViewCompat#setProfile 方法,並使用 WebViewCompat#getProfile 擷取設定檔 - 新推出的 ProfileStore 可讓您管理應用程式中的可用設定檔,包括預設設定檔。
- 現有的 WebView API (例如 CookieManager#getInstance) 會繼續在預設設定檔上運作。
- 新增 API,可在網頁載入前插入並執行 JavaScript。
- 應用程式可透過 WebViewCompat#addDocumentStartJavascript API 將指令碼插入
WebView
,保證在執行任何網頁指令碼前執行。應用程式可透過 API 指定要啟用指令碼的目標來源清單,確保指令碼只會在預期網頁上執行。與 WebView#evaluateJavascript 不同,這個 API 會在內嵌 Iframe 載入時執行指令碼。應用程式可以搭配使用這個新 API 和 WebViewCompat#addWebMessageListener,與網頁中的 JavaScript 建立雙向通訊,確保通訊穩定可靠。
- 應用程式可透過 WebViewCompat#addDocumentStartJavascript API 將指令碼插入
- 新增 API,可修改 Privacy Sandbox 歸因報表事件的註冊方式。
- 我們推出了新的 API WebSettingsCompat#setAttributionRegistrationBehavior,可讓開發人員設定歸因來源和觸發事件的註冊方式,是來自應用程式本身,還是來自 WebView 中的網頁內容。這個方法也可用於在 WebView 中停用 Attribution Reporting。此外,我們也新增了
WebSettingsCompat#getAttributionRegistrationBehavior
API,可取得目前的行為。 - 詳情請參閱 Privacy Sandbox 說明文件。
- 我們推出了新的 API WebSettingsCompat#setAttributionRegistrationBehavior,可讓開發人員設定歸因來源和觸發事件的註冊方式,是來自應用程式本身,還是來自 WebView 中的網頁內容。這個方法也可用於在 WebView 中停用 Attribution Reporting。此外,我們也新增了
- 新增 API,可覆寫用戶端提示的使用者代理程式中繼資料。
- 我們推出了新的 API WebSettingsCompat#setUserAgentMetadata,可覆寫用於填入使用者代理程式用戶端提示的 WebView 使用者代理程式中繼資料,並新增另一個 API WebSettingsCompat#getUserAgentMetadata,用於取得目前的使用者代理程式覆寫。建議應用程式在透過 WebSettings.setUserAgentString 變更預設使用者代理程式字串時,使用新的 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
,透過 API (getOrCreateProfile
、getProfile
、getAllProfileNames
和deleteProfile
) 建立或刪除設定檔,藉此管理設定檔。Profile
類別會提供不同的 API,用於取得與這個設定檔相關聯的資料,例如名稱、GeoLocationPermissions
、ServiceWorkerController
、CookieManager
和WebStorage
。每個WebView
預設都會使用預設設定檔執行,但您可以使用WebViewCompat#setProfile
變更。此外,您可以使用WebViewCompat#getProfile
擷取WebView
的設定檔。(I32d22) - 新增 API,修改 Attribution Reporting 事件的登錄方式。我們推出新的 API
WebSettingsCompat#setAttributionRegistrationBehavior
,可讓開發人員設定來源和觸發事件是否註冊為來自應用程式本身,或是來自WebView
中的網頁內容。這個方法也可用於在WebView
中停用歸因報表。此外,我們也新增了WebSettingsCompat#getAttributionRegistrationBehavior
API,可取得目前的行為。詳情請參閱 Privacy Sandbox 說明文件。(I661f2) - 新增 API 來覆寫使用者代理程式中繼資料。我們推出了新的 API
WebSettingsCompat#setUserAgentMetadata
,可覆寫 WebView 的 User-Agent 中繼資料 (用於填入 User-Agent 用戶端提示),並新增另一個 APIWebSettingsCompat#getUserAgentMetadata
,用於取得目前的 User-Agent 覆寫。建議應用程式使用新的 API 設定正確的覆寫值,而非依賴變更使用者代理程式。(I74500) - 新增 API,在網頁載入期間插入要執行的 JavaScript。應用程式可透過
WebViewCompat.addDocumentStartJavascript
API 將指令碼插入 WebView,這些指令碼會在執行任何網頁指令碼之前執行。應用程式可透過 API 指定要啟用指令碼的目標來源清單,確保指令碼只會在預期網頁上執行。與WebView.evaluateJavascript
不同,這個 API 會在指令碼載入時,允許在內嵌的 Iframe 中執行指令碼。(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
中新增了對圖片拖曳功能的支援。如要讓使用者從WebView
中移出圖片,請按照類別說明文件所述,在應用程式的資訊清單中新增DropDataContentProvider
。 - 我們新增了
ProcessGlobalConfig#setDirectoryBasePaths(Context,File,File)
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)
修正錯誤
- 修正無效的
ProGuard
規則,避免使用DexGuard
時發生建構錯誤 (Ia65c2、b/270034835)
1.7.0-alpha02 版
2023 年 2 月 8 日
發布 androidx.webkit:webkit:1.7.0-alpha02
。1.7.0-alpha02 版包含以下修訂項目。
修正錯誤
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 版包含此連結所列的修訂項目。
修正錯誤
- 修正 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 不同,getCookie API 只會傳回 Cookie 的名稱和值屬性。 - 如果在
WebView
中由管理員進行設定,WebSettingsCompat
可採用新的方法啟用/停用EnterpriseAuthenticationAppLinkPolicy
的效果,並取得目前的設定。這項功能可讓 WebView 開啟驗證應用程式,而不是開啟驗證網址。這項功能不會影響非由企業政策管理的裝置。 - 在
WebSettingsCompat
中新增新的 API,以便讓應用程式將X-Requested-With
標頭中的應用程式套件名稱明確地傳送給許可清單來源。每次從WebView
收到要求時,傳統上都會傳送此標頭。
1.6.0-rc01 版
2023 年 1 月 11 日
發布 androidx.webkit:webkit:1.6.0-rc01
。1.6.0-rc01 版包含以下修訂項目。
修正錯誤
- 修正了在 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
已變更為可使用一般建構函式和靜態套用方法。您應盡早為每個程序呼叫一次套用方法,如果多次呼叫,則會擲回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
包含部分 process-global 設定參數,這些參數在載入WebView
後即無法變更 (例如WebView
資料目錄)。此類別可讓應用程式設定這些參數。這項設定必須在應用程式啟動時盡快完成並套用,確保啟動作業是在其他執行緒呼叫可將WebView
載入處理程序的方法之前發生。(I7c0e0、b/250553687) - 新增 API,讓應用程式將 X-Requested-With 標頭中的應用程式套件名稱明確傳送至已加入許可清單的來源。每次從
WebView
收到要求時,傳統上都會傳送此標頭。(I0adfe、b/226552535)
API 變更
- 所有 Android 版皆支援
WebView
105 以上版本中的WebSettingsCompat#setAlgorithmicDarkeningAllowed
API。僅 Android Q 以上版的 API 支援先前的WebView
版本。因此,此 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,用於擷取特定網址上所有 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,以便在管理員透過WebView
設定EnterpriseAuthenticationAppLinkPolicy
時啟用/停用相關功能。這項功能可讓WebView
開啟驗證應用程式,而不是開啟驗證網址。這項功能不會影響非由企業政策管理的裝置。
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
設定網址允許清單,以便使用已設定的 Proxy。這個做法生效後,所有其他網址都會略過已設定的 Proxy。
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 在 Q 以下的 API 級別不會發揮任何作用。(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,允許/禁止針對 targetSdk >= 33 的應用程式進行演算法調暗。(I29597)
API 變更
- 在
ProxyCofig.Builder
中新增方法即可設定反向略過。如果將反向略過設定為 true,則只有略過清單中的網址會使用 Proxy 設定。(I9eaa2、b/168728599)
修正錯誤
- 修正了深色主題說明文件的錯字。(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 版包含以下修訂項目。
修正錯誤
- 修正使用 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 版的修訂項。
修正錯誤
- 修正相容性問題,此問題會導致應用程式在 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 設定網路要求 Proxy。
- 使用 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 版包含這些修訂版本。
修正錯誤
- 修正如果傳遞空值用戶端就可能造成
setWebViewRenderProcessClient()
停止運作的問題。
1.1.0-beta01 版本
2019 年 9 月 5 日
發布了 androidx.webkit:webkit:1.1.0-beta01
。您可以前往這裡查看這個版本包含的修訂項目。
新功能
- 使用
WebViewAssetLoader
的新InternalStoragePathHandler
可載入應用程式資料目錄中的檔案。
API 變更
ProxyConfig#getProxyRules()
現在會回傳無法修改的ProxyRule
執行個體清單,這是一種新類別,可保存配置篩選器及其對應的 Proxy 網址。
修正錯誤
- 如果無法判斷檔案路徑的 MIME 類型,
WebViewAssetLoader
會預設為「文字/純文字」MIME 類型 (而不是空值)。 - 載入路徑名稱中含有特殊字元的檔案時,
WebViewAssetLoader
不會再捨棄NullPointerException
。
1.1.0-alpha02 版本
2019 年 8 月 7 日
發布 androidx.webkit:webkit:1.1.0-alpha02
。您可以前往這裡查看這個版本包含的修訂項目。
新功能
WebViewAssetLoader
會公開PathHandler
介面,允許應用程式建立自訂路徑處理功能。
API 變更
- 由於
WebViewAssetLoader
不應為子類別,因此現在為最終類別。 WebViewAssetLoader#PathHandler
的實作方式目前為公開且為最終。- 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 設定網路要求 Proxy。
- 使用 AssetLoader API,可透過要求攔截簡化 APK 資產和資源載入,讓使用者不需停用 CORS 即可存取網路資源。
- 使用 TracingController API 可出於偵錯目的收集 WebView 追蹤資訊。
- 使用 RenderProcess API 可管理 WebView 轉譯器服務,以及偵測是否有因表現不良的內容而造成 WebView 轉譯器沒有回應。
修正錯誤
- 針對現有 API 的文件格式設定小幅度修正。