Android webview set(inject)WebBackForwardList

时间:2017-05-19 12:03:54

标签: android webview android-webview

我正在编写基于webview的android浏览器。 在应用程序关闭后,我想将保存在数据库中的历史记录设置为webview,因此它将显示以前会话中的历史记录(后台堆栈)。但是没有这样的方法。 (我们在WebView中只有copyBackForwardList()方法,即全部)

我试着没有goBack()方法,只是保存url,来到WebViewClient :: onPageFinished()方法,但这种方法并不总是有用 - 对于facebook网站,例如,我没有接到任何电话对于WebViewClient方法,因此只需单击一下,就可以获得之前的网站,在facebook之前,而不是,Feed,(例如:导航路径为:site - > fb feed - > feed detail)。当使用goBack()方法完成同样的工作时(我们回到feed)。 但同样,在应用程序重启后,之前的会话历史都没有存在。

请提出任何建议?

1 个答案:

答案 0 :(得分:0)

我应用了开源Lightning Browser中的解决方案。 我们的想法是将实例状态包保存并存储在onStop中的文件中,并在启动时将其应用回来。 这很hacky,但它确实有效!