最新的AndroidX 主干里已经出现了web/web-compose模块。目录在platform/frameworks/support/web/web-compose包文档写的是web.compose用途是提供显示网页的 composable。现在api/current.txt还没有任何公开类所以它更像一个刚露面的 Jetpack Web Compose 信号。源码信号这次被看到的是 AndroidX 仓库里的新目录platform/frameworks/support//refs/heads/androidx-main/web/web-compose/src/main/kotlin/androidx/web这个目录下面有api、build.gradle和src。src/main/kotlin/androidx/web里现在只有一个文档文件内容很短模块名是Web Web Compose包名是web.compose说明是提供一个展示网页的 composable。build.gradle里能确认三件事android{namespaceandroidx.web.compose}androidx{nameweb:web-composetypeSoftwareType.PUBLISHED_LIBRARY inceptionYear2026}这里的PUBLISHED_LIBRARY说明它按 AndroidX 发布库的方式建了模块。namespace是androidx.web.compose模块名是web:web-compose。但这还不能等同于 Maven 已经有可用版本也不能推导出最终依赖坐标和类名。更关键的是api/current.txt。现在这个文件只有签名格式没有任何公开 API// Signature format:4.0所以现阶段不要写“某个 Web composable 已经能用了”。能确定的只有模块已经进了 AndroidX 主干公开接口还没露出来。现在的写法在 Jetpack Compose 里展示网页现在最常见的方式还是AndroidView WebView。Compose 负责布局和状态真正渲染网页的还是平台WebView。一个最小封装大概是这样Composable fun WebPage(url: String, modifier: ModifierModifier,){var webView: WebView? by remember{mutableStateOfWebView?(null)}AndroidView(modifiermodifier.fillMaxSize(), factory{context -WebView(context).apply{webViewClientWebViewClient()settings.javaScriptEnabledfalseloadUrl(url)webViewthis}}, update{view -if(view.url!url){view.loadUrl(url)}})DisposableEffect(Unit){onDispose{webView?.destroy()webViewnull}}}这段代码能跑但它只是把 View 塞进 Compose。页面加载状态、错误页、返回栈、文件选择、权限请求、Cookie、深色模式、滚动冲突、生命周期释放都要自己处理。写一个简单内嵌网页没问题写成业务组件就会开始长代码。WebView 的边界WebView不是普通的 Compose 节点。它有自己的进程、渲染、缓存、历史栈和生命周期。Compose 的 recomposition 只会影响AndroidView的update不会自动理解网页状态。最容易踩的是重复加载。update每次重组都有机会执行如果里面直接loadUrl(url)列表滚动、状态变化、父节点重组都可能让网页重新加载。上面的代码用了if (view.url ! url)目的就是避免无意义刷新。第二个问题是释放。WebView持有的资源比普通 View 重页面里还有 JS、图片、视频和缓存。Composable 离开页面时如果没有把WebView销毁内存和后台行为就可能变得很难排查。还有返回处理。Compose 页面通常用BackHandler接系统返回但 WebView 自己有历史栈。实际业务里经常要先判断canGoBack()网页能返回时走goBack()网页没有历史时再退出当前 Compose 页面。BackHandler(enabledwebView?.canGoBack()true){webView?.goBack()}这些代码本身不复杂麻烦的是每个项目都会再加一层业务规则。比如哪些域名允许打开、加载失败显示什么、登录 Cookie 怎么同步、网页标题怎么回传给顶部栏。最后封装出来的组件往往已经不是一个简单AndroidView。名字容易误读Jetpack Web Compose这个名字容易和Compose for Web混在一起。后者是 Kotlin/Wasm、Kotlin/JS 那条线目标是浏览器里的 UI。AndroidX 这个web-compose目录出现在platform/frameworks/support说明文字也指向“显示网页的 composable”。从现有源码看它更像 Android App 里用 Compose 展示网页内容的组件而不是把 Compose UI 编译到 Web 平台。这个边界要分清楚不然很容易把两个技术方向讲混。对 Android 开发者来说它可能补的是AndroidView WebView中间这层封装。现在自己写的WebPage、ComposeWebView、WebViewContainer都有机会被官方组件收敛一部分重复代码。但具体收敛到什么程度要等 API 文件出现。最后web/web-compose已经出现在 AndroidX 主干里模块说明指向“显示网页的 composable”但当前 API 文件还是空的。相信很多人都会期待Compose版的WebView吧[#Android](javascript: [#JetpackCompose](javascript: [#AndroidX](javascript: [#WebView](javascript: