【发布时间】:2016-06-15 00:20:23
【问题描述】:
我正在构建一个小应用程序,我使用WKWebView 使用户能够浏览网页。
我遇到的问题是,每当用户想要返回之前访问过的页面时,都必须重新加载此页面。
我的问题:有没有办法缓存WKWebView 的历史堆栈的每个页面的内容,这样浏览历史不会使所有页面再次加载?
【问题讨论】:
我正在构建一个小应用程序,我使用WKWebView 使用户能够浏览网页。
我遇到的问题是,每当用户想要返回之前访问过的页面时,都必须重新加载此页面。
我的问题:有没有办法缓存WKWebView 的历史堆栈的每个页面的内容,这样浏览历史不会使所有页面再次加载?
【问题讨论】:
WKWebView 存储自己的导航历史,根据class documentation,可以使用以下成员方法进行导航:
public func goToBackForwardListItem(item: WKBackForwardListItem) -> WKNavigation?
public func goBack() -> WKNavigation?
public func goForward() -> WKNavigation?
使用这些方法浏览历史堆栈的行为方式与其他浏览器类似。即页面上的位置将被保留,e.t.c...
不幸的是,到目前为止,还没有办法保存然后重新加载这个历史堆栈。因此,如果您终止您的应用程序,则无法使用先前 WKWebView 的历史记录重新创建 WKWebView。希望这在未来会有所改变。
【讨论】: