11package com.multiplatform.webview.web
22
33import android.content.Context
4+ import android.content.res.Configuration
45import android.graphics.Bitmap
56import android.os.Build
67import android.view.ViewGroup
@@ -18,6 +19,8 @@ import androidx.compose.runtime.rememberCoroutineScope
1819import androidx.compose.ui.Modifier
1920import androidx.compose.ui.graphics.toArgb
2021import androidx.compose.ui.viewinterop.AndroidView
22+ import androidx.webkit.WebSettingsCompat
23+ import androidx.webkit.WebViewFeature
2124import com.multiplatform.webview.jsbridge.WebViewJsBridge
2225import com.multiplatform.webview.util.KLogger
2326
@@ -198,6 +201,19 @@ fun AccompanistWebView(
198201 domStorageEnabled = it.domStorageEnabled
199202 }
200203 }
204+ if (WebViewFeature .isFeatureSupported(WebViewFeature .FORCE_DARK )) {
205+ val nightModeFlags = resources.configuration.uiMode and Configuration .UI_MODE_NIGHT_MASK
206+ if (nightModeFlags == Configuration .UI_MODE_NIGHT_YES ) {
207+ WebSettingsCompat .setForceDark(this .settings, WebSettingsCompat .FORCE_DARK_ON )
208+ } else {
209+ WebSettingsCompat .setForceDark(this .settings, WebSettingsCompat .FORCE_DARK_OFF )
210+ }
211+
212+ WebSettingsCompat .setForceDarkStrategy(
213+ this .settings,
214+ WebSettingsCompat .DARK_STRATEGY_WEB_THEME_DARKENING_ONLY ,
215+ )
216+ }
201217 }.also {
202218 val androidWebView = AndroidWebView (it, scope, webViewJsBridge)
203219 state.webView = androidWebView
0 commit comments