我正在写一个Android浏览器,基于webview。 应用程序关闭后,我想将保存在数据库中的历史记录设置到 webview,这样它就会显示以前会话的历史记录(返回堆栈)。但没有这样的方法。 (WebView 中只有 copyBackForwardList() 方法,仅此而已)
我尝试不使用 goBack() 方法,只保存 URL,该 URL 来到 WebViewClient::onPageFinished() 方法,但这种方法并不总是有效 - 例如,对于 Facebook 网站,我没有收到任何对 WebViewClient 的调用方法,因此只需点击一下即可返回 Facebook 之前的上一个网站,而不是 feed(示例:导航路径为:网站 -> fb feed -> feed 详细信息)。当使用 goBack() 方法完成同样的操作时,它工作得很好(我们返回到 feed)。 但同样,应用程序重新启动后,之前的会话历史记录都不会保留。
请问,有什么建议吗?
我应用了开源Lightning Browser中找到的解决方案。 这个想法是将实例状态包保存并存储到 onStop 中的文件中,并在启动时将其应用回来。 这很hacky,但它有效!