恢复 webview 时恢复历史记录和当前页面
我有一个正在其中导航的网络视图。我已经实现了后退和前进。我的问题是,当我访问另一个活动后返回到 web 视图时,历史记录会丢失,即 web 视图从第一个 url 开始。
我该如何编码,以便在我在 web 视图上调用 finish 以在返回到 web 视图时切换到另一个活动后,WebBackForwardList 被恢复,并且我会被带到我离开 web 视图时所在的页面?
我尝试使用 webview.save/restoreState(bundle) 覆盖 onSaveInstanceState 和 onRestoreInstanceState 但没有成功。
我已经通过在首选项中保存最后一个网址来实现返回到最后一页,但无法恢复整个历史记录。
I have a webview that I am navigating within. I have implemented go back and go forward. My problem is that when I return to the webview after visiting another activity, the history is lost i.e. the webview starts from the first url.
How do I code it so that after I call finish on the webview to swap to another activity on returning to the webview, the WebBackForwardList is restored and I am taken to the page I was on when I left the webview?
I have tried overriding onSaveInstanceState and onRestoreInstanceState using webview.save/restoreState(bundle) but with no success.
I have achieved returning to the last page by saving the last url in preferences, but have been unable to restore the entire history.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在重用网络视图吗?
Restore() 的 javadoc 说:
因此重新生成 webview 对象可能会有所帮助。
其他研究途径:
WebView.restore() 调用 list.addHistoryItem(item) 而不清除列表,因此如果您有一个正在重用的 webView,那么调用 webView 可能会有所帮助。在恢复()之前先清除历史记录()。
此SO答案意味着您可以将一条消息发送到历史记录列表添加项目。
祝你好运,请发回你的进度。
——拉里
Are you reusing the webview?
The javadoc for restore() says:
so regenerating the webview object may help.
Other avenues to research:
WebView.restore() calls list.addHistoryItem(item) without clearing the list, so if you have a webView that is getting reused, it may help to call webView.clearHistory() first before the restore().
This SO answer implies that there is a message you can send to the history list to add items.
Good luck , and please post back your progress.
--larry