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")
三、最佳实践
- ✅ 启用 JavaScript 时注意安全性
- ✅ 使用 @JavascriptInterface 注解
- ✅ 处理返回键导航
- ✅ 显示加载进度
- ✅ 管理 Cookie 和缓存
总结
- AndroidView:嵌入 WebView
- JavaScript 交互:双向通信
- JsInterface:JS 调用原生
- Cookie:同步登录状态