Ios 如何恢复WKWebView的历史记录完整?

Ios 如何恢复WKWebView的历史记录完整?,ios,nsuserdefaults,wkwebview,Ios,Nsuserdefaults,Wkwebview,我以前问过这个问题,我得到了两个答案: 引自: 这里没有简单的答案。无法存档WKWebView,并且它 也不参与UI状态保存/恢复。你 已经发现了这个 对于FirefoxforiOS,我们采取了不同的方法来解决这些问题 局限性这远非理想,但确实有效 恢复包含会话信息(以前访问过的页面)的选项卡时 附件中,我们从本地web服务器(正在运行)加载一个特殊的html页面 在本地主机上),修改页面的推送状态并推送 历史堆栈上以前访问过的URL 因为这些URL需要来自同一个来源,所以我们基本上推送UR

我以前问过这个问题,我得到了两个答案:

  • 引自:

    这里没有简单的答案。无法存档WKWebView,并且它 也不参与UI状态保存/恢复。你 已经发现了这个

    对于FirefoxforiOS,我们采取了不同的方法来解决这些问题 局限性这远非理想,但确实有效

    恢复包含会话信息(以前访问过的页面)的选项卡时 附件中,我们从本地web服务器(正在运行)加载一个特殊的html页面 在本地主机上),修改页面的推送状态并推送 历史堆栈上以前访问过的URL

    因为这些URL需要来自同一个来源,所以我们基本上推送URL 像`

    在我们的UI中,我们将其转换为显示original.url.com。当用户 回到历史上加载这些,我们拦截,而不是 从localhost加载页面时,我们加载原始页面

    这是一个很大的难题,但这就是我们目前所拥有的一切

    问题是,我下载了iOS版Firefox应用程序,并测试了它是否恢复了一个标签。我发现,在你关闭应用程序并重新打开后,所有内容都丢失了。没有回去的选择

    这对我和我正在构建的网络浏览器来说都是一件大事。所以,我希望有第三个答案,一个更好的解决方案。我确实感到乐观,因为一年多过去了


    返回使用UIWebView不是一个选项,因为性能很差。

    您为什么不自己使用WKWebView委托跟踪历史堆栈?即使我这样做,这将如何解决问题?嗯。。。这给了我一个想法,但感觉你还没有理解这个问题。无论如何谢谢你!跟踪历史记录意味着,当用户点击后退/前进按钮时,即使用户已关闭web视图并重新打开它,也可以将请求重定向到正确的url。是的,这将不会保持页面的确切状态,但根据您的问题,它将允许您创建另一个历史记录完整的WKWebView实例。很抱歉受到了偏见。当UIWebView还是一个东西的时候,我也想到了同样的事情。我无法实现此解决方案,因为无法访问backForwardList,因此我的历史记录不可靠,但现在它似乎是一个可行的解决方案。当时我不熟悉UIWebView状态保存/恢复。