hi all, i am using this third party webview librar...
# compose
o
hi all, i am using this third party webview library in my Compose Multiplatform project: https://github.com/KevinnZou/compose-webview-multiplatform I can successfully use the
navigator.evaluateJavaScript
method to send a token and other information from the native app to the WebView on iOS, but it does not work on Android. Here's some sample code:
Copy code
@Composable
fun MyWebViewScreen(webUrl: String) {
    val webViewState =
        rememberWebViewState("<https://www.mysite.com>")
    val webViewNavigator = rememberWebViewNavigator()
    val jsBridge = rememberWebViewJsBridge(webViewNavigator)
    val token by dataStore.getUserToken().collectAsState(initial = null)

    LaunchedEffect(Unit) {
        initWebView(webViewState)
        initJsBridge(jsBridge)
    }

    LaunchedEffect(
        webViewState.loadingState,
        token,
    ) {
        if (webViewState.loadingState == LoadingState.Finished && token != null) {
          val authMessage = {
            "options": "userAuth",
            "token": "$token",
          }

          webViewNavigator.evaluateJavaScript("window.postMessage($authMessage, '*');")
        }
    }

    Column(Modifier.fillMaxSize()) {
        WebView(
            state = webViewState,
            modifier = Modifier
                .padding(WindowInsets.statusBars.asPaddingValues())
                .fillMaxSize(),
            navigator = webViewNavigator,
            webViewJsBridge = jsBridge,
        )
    }
}

fun initWebView(webViewState: WebViewState) {
    webViewState.webSettings.apply {
        zoomLevel = 1.0
        isJavaScriptEnabled = true
        logSeverity = KLogSeverity.Debug
        allowFileAccessFromFileURLs = true
        allowUniversalAccessFromFileURLs = true
        androidWebSettings.apply {
            allowFileAccess = true
            isAlgorithmicDarkeningAllowed = true
            domStorageEnabled = true
        }
    }
}

fun initJsBridge(webViewJsBridge: WebViewJsBridge) {
    webViewJsBridge.register(GreetJsMessageHandler())
}
does anybody have any experience/workaround for Android? thanks!