恢复 webview 时恢复历史记录和当前页面

发布于 2024-10-10 12:12:58 字数 353 浏览 1 评论 0原文

我有一个正在其中导航的网络视图。我已经实现了后退和前进。我的问题是,当我访问另一个活动后返回到 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪推晚风 2024-10-17 12:12:58

您正在重用网络视图吗?

Restore() 的 javadoc 说:

应该调用此方法
恢复WebView的状态
在使用该对象之前。如果是的话
WebView 有一个之后调用
有机会建立状态(加载页面,
创建后退/前进列表等)
可能会产生不良副作用。

因此重新生成 webview 对象可能会有所帮助。

其他研究途径:

  • WebView.restore() 调用 list.addHistoryItem(item) 而不清除列表,因此如果您有一个正在重用的 webView,那么调用 webView 可能会有所帮助。在恢复()之前先清除历史记录()。

  • SO答案意味着您可以将一条消息发送到历史记录列表添加项目。

祝你好运,请发回你的进度。

——拉里

Are you reusing the webview?

The javadoc for restore() says:

This method should be called to
restore the state of the WebView
before using the object. If it is
called after the WebView has had a
chance to build state (load pages,
create a back/forward list, etc.)
there may be undesirable side-effects.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文