Webkit
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2023 年 2 月 8 日 | 1.6.0 | - | - | 1.7.0-alpha02 |
宣告依附元件
如要在 Webkit 上新增依附元件,您必須將 Google Maven 存放區新增至您的專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
Groovy
dependencies { implementation "androidx.webkit:webkit:1.6.0" }
Kotlin
dependencies { implementation("androidx.webkit:webkit:1.6.0") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或想提出建議協助改善這個程式庫,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
1.7 版本
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.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()
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-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 的文件格式設定小幅度修正。