Самое полезное в новом минорном релизе:
👉
WebViewCompat.navigate наконец-то нормальная замена loadUrl. Можно заменять страницу в истории, получать объект Navigation и корректно сохранять/восстанавливать заголовки. Для приложений, где WebView — не просто «открыть ссылку», а нормальный флоу, это давно было нужно.if (WebViewFeature.isFeatureSupported(WebViewFeature.WEBVIEW_NAVIGATE_EXPERIMENTAL_V1)) {
val params = NavigationParameters.Builder()
.setShouldReplaceCurrentEntry(true) // заменяет текущую запись в истории
.addAdditionalHeader("X-Custom-Header", "value")
.build()
val navigation: Navigation
= WebViewCompat.navigate(webView, "https://example.com", params)
// navigation можно потом матчить в NavigationListener
}👉 Контроль HTTP-кэша через
Profile.getHttpCache. Можно посмотреть квоту и при необходимости подкрутить. Полезно, если много статики, или наоборот — когда кэш только место жрёт.if (WebViewFeature.isFeatureSupported(WebViewFeature.HTTP_CACHE_MANAGER)) {
val profile = ProfileStore.getInstance().getOrCreateProfile("my_profile")
val httpCache = profile.httpCache // или profile.getHttpCache()
// Посмотреть текущую квоту
val currentQuota = httpCache.quotaBytes
val defaultQuota = httpCache.defaultQuotaBytes
val isDefault = httpCache.isUsingDefaultQuota
// Задать свою квоту (например, 50 МБ)
httpCache.setQuotaBytes(50L * 1024 * 1024)
// Или вернуть автоматическое управление
// httpCache.useDefaultQuota()
}👉
enqueuePreconnect — можно заранее поставить preconnect в очередь, не заставляя WebView стартовать прямо сейчас.👉 Можно отключить автоматическую загрузку фавиконок (
setDownloadFaviconsEnabled). Мелочь, но экономит память и трафик, особенно если иконок много.👉 Плюс Android Lint, который теперь ругается, если кастомный
WebViewClient не переопределил onRenderProcessGone. Полезно, потому рендерер падает регулярно.🔗 Подробности релиза
#Android #AndroidDev #WebView #AndroidJetpack