Webkit

在 Android 5 以上版本使用新型 WebView API。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2022 年 6 月 29 日 1.4.0 - 1.5.0-beta01 -

宣告依附元件

如要在 Webkit 上新增依附元件,您必須將 Google Maven 存放區新增至您的專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
    implementation "androidx.webkit:webkit:1.4.0"
}

Kotlin

dependencies {
    implementation("androidx.webkit:webkit:1.4.0")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

提報新問題

詳情請參閱 Issue Tracker 文件

1.5.0 版本

1.5.0-beta01 版本

2022 年 6 月 29 日

發布 androidx.webkit:webkit:1.5.0-beta011.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 設定 (I9eaa2b/168728599)。

修正錯誤

  • 已修正深色主題說明文件的錯字 (I36ebfb/194343633)。
  • 已修正以下錯誤:WebViewAssetLoader.Builder 方法無預警地依順序執行 (If420db/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-rc011.4.0-beta01起沒有變更。1.4.0-rc01 版本包含這些修訂版本。

1.4.0-beta01 版本

2020 年 10 月 14 日

androidx.webkit:webkit:1.4.0-beta011.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() AIP 以取代 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-rc011.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 的文件格式設定小幅度修正。