Compose WebView:网页集成与 JS 交互

2024-07-01 · 22 min · 混合开发

WebView 允许在应用中展示网页内容,实现原生与 Web 的混合开发。

一、基础 WebView

AndroidView(
    factory = { context ->
        WebView(context).apply {
            settings.javaScriptEnabled = true
            webViewClient = WebViewClient()
            loadUrl(url)
        }
    }
)

二、JavaScript 交互

// Compose 调用 JS
state.evaluateJavascript("showAlert('Hello!')")

// JS 调用 Compose
class JsInterface {
    @JavascriptInterface
    fun postMessage(message: String) {
        // 处理消息
    }
}

webView.addJavascriptInterface(jsInterface, "Android")

三、最佳实践

总结