如何在 Jetpack Compose Navigation 中保留 WebView 状态?

问题描述 投票:0回答:1

当使用 WebViews 显示 HTML 内容,并使用新的 Activity 显示新页面时,所有 WebViews 的状态会在打开/关闭新的 WebView Activity 时由 OS 自动保存和恢复。这会带来不间断的后退导航用户体验。

话虽如此,我想知道在使用 Jetpack Compose Navigation 或围绕它提供高级导航 API 的任何第 3 方库时是否可以复制这种体验?如果我理解正确,手头的问题是在单活动架构下,可组合项被完全处理并重新创建。我们需要在生命周期感知组件(例如 ViewModel)中保持持久状态。问题是,我找不到使用 WebView 执行此操作的方法,即使使用 Accompanist 库提供的方法也是如此。没有完整的状态还原导致返回时丢失当前加载的页面,以及滚动位置,从而极大地伤害用户体验。我尝试使用

saveState
类的
restoreState
WebView
方法进行实验,但无济于事。因此,如果有人可以展示一个工作示例,说明在使用 Compose 导航 API 时如何在返回导航时完全保存和恢复 WebView 的状态,我将不胜感激。

android webview android-jetpack-compose jetpack-compose-navigation
1个回答
0
投票

最近,伴奏开始提供

rememberSaveableWebViewState
.
可从 Maven 版本
0.31.1-alpha
.
有一个关于这个解决方案的链接

© www.soinside.com 2019 - 2024. All rights reserved.