fix(android): improve webview compatibility

This commit is contained in:
Peter Steinberger
2025-12-18 02:08:53 +01:00
parent 2b2434d239
commit 6d60224c93
2 changed files with 8 additions and 1 deletions

View File

@@ -1,9 +1,11 @@
package com.steipete.clawdis.node
import android.Manifest
import android.content.pm.ApplicationInfo
import android.os.Bundle
import android.os.Build
import android.view.WindowManager
import android.webkit.WebView
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.viewModels
@@ -25,6 +27,8 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val isDebuggable = (applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE) != 0
WebView.setWebContentsDebuggingEnabled(isDebuggable)
applyImmersiveMode()
requestDiscoveryPermissionsIfNeeded()
requestNotificationPermissionIfNeeded()

View File

@@ -6,6 +6,7 @@ import android.content.pm.PackageManager
import android.graphics.Color
import android.view.View
import android.webkit.WebView
import android.webkit.WebSettings
import android.webkit.WebViewClient
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -147,7 +148,9 @@ private fun CanvasView(viewModel: MainViewModel, modifier: Modifier = Modifier)
factory = {
WebView(context).apply {
settings.javaScriptEnabled = true
settings.domStorageEnabled = false
// Some embedded web UIs (incl. the "background website") use localStorage/sessionStorage.
settings.domStorageEnabled = true
settings.mixedContentMode = WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE
webViewClient = WebViewClient()
setBackgroundColor(Color.TRANSPARENT)
setBackgroundResource(0)