如何在Jetpack Compose导航中保留WebView状态



当使用WebView显示HTML内容,并使用新的"活动"显示新页面时,当打开/关闭新的WebView活动时,操作系统会自动保留和恢复所有WebView的状态。这将带来不间断的反向导航用户体验。

话虽如此,我想知道在使用Jetpack Compose Navigation或任何围绕它提供高级导航API的第三方库时,是否可以复制这种体验?如果我理解正确的话,目前的问题是在一个单一的活动体系结构下,可组合件会被完全处理和重新创建。我们需要在一个生命周期感知组件(如ViewModel(中保持持久状态。问题是,我找不到使用WebView实现这一点的方法,即使是使用伴奏库提供的WebView。由于缺乏完整的状态恢复,导致在返回导航时丢失当前加载的页面以及滚动位置,从而极大地损害了用户体验。我尝试使用WebView类的saveStaterestoreState方法进行实验,但没有成功。因此,如果有人能展示一个工作示例,说明在使用Compose导航API时,如何在反向导航时完全保存和恢复WebView的状态,我将不胜感激。

最近,伴奏者开始提供rememberSaveableWebViewState
可从Maven版本0.31.1-alpha获得
有一个关于此解决方案的链接。

最新更新