如何返回到 WKWebView 历史记录中的起点

blu*_*lub 5 xcode objective-c ios swift wkwebview

我试图找到一种方法来向后跳到WKWebView历史记录的起点。

假设我有一个WKWebView init带有 google.com 链接的 Main/Start-Page ( )。

所以我点击链接,接下来在google.com我点击另一个链接maps.google.com。所以我离我的起始页只有 2 步之遥。

如何在不重新加载或重新初始化的情况下直接跳回主页面/起始页面WKWebView

我尝试了以下实现,但没有成功:

-(void)backNavigationToStart{
    if([vuMain canGoBack]){
        WKBackForwardList *list = [vuMain backForwardList];
        if(list && list.backList){
            WKBackForwardListItem *item = [list itemAtIndex:0];
            [vuMain goToBackForwardListItem:item];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

请注意 -itemAtIndex 的 index 参数的含义:

“所需列表项相对于当前项的索引:0 代表当前项,-1 代表前一项,1 代表紧随其后的项,依此类推。” https://developer.apple.com/library/ios/documentation/WebKit/Reference/WKBackForwardList_Ref/index.html#//apple_ref/occ/instm/WKBackForwardList/itemAtIndex:

使用适当的负索引,或使用 backList 中的第一项。


Ari*_*rdi 5

纯粹的快速解决方案:

    // find first item in history
    let historySize = webView.backForwardList.backList.count
    let firstItem = webView.backForwardList.item(at: -historySize)

    // go to it!
    webView.go(to: firstItem!)
Run Code Online (Sandbox Code Playgroud)