当使用 WebViews 显示 HTML 内容,并使用新的 Activity 显示新页面时,所有 WebViews 的状态会在打开/关闭新的 WebView Activity 时由 OS 自动保存和恢复。这会带来不间断的后退导航用户体验。
话虽如此,我想知道在使用 Jetpack Compose Navigation 或围绕它提供高级导航 API 的任何第 3 方库时是否可以复制这种体验?如果我理解正确,手头的问题是在单活动架构下,可组合项被完全处理并重新创建。我们需要在生命周期感知组件(例如 ViewModel)中保持持久状态。问题是,我找不到使用 WebView 执行此操作的方法,即使使用 Accompanist 库提供的方法也是如此。没有完整的状态还原导致返回时丢失当前加载的页面,以及滚动位置,从而极大地伤害用户体验。我尝试使用
saveState
类的 restoreState
和 WebView
方法进行实验,但无济于事。因此,如果有人可以展示一个工作示例,说明在使用 Compose 导航 API 时如何在返回导航时完全保存和恢复 WebView 的状态,我将不胜感激。