WKWebView返回某个历史页面

WKWebView


有时候,在h5页面进行跳转的时候,须要退出到某个加载历史的web页面,此时则须要使用WKWebView里面新增的API。web



/**
 *  在发送请求以前,决定是否跳转
 *
 *  @param webView          实现该代理的webview
 *  @param navigationAction 当前navigation
 *  @param decisionHandler  是否调转block
 */
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    
    if (navigationAction.navigationType==WKNavigationTypeBackForward) {                  //判断是返回类型
        if (webView.backForwardList.backList.count>0) {                                  //获得栈里面的list
            WKBackForwardListItem * item = webView.backForwardList.currentItem;          //获得如今加载的list
            for (WKBackForwardListItem * backItem inwebView.backForwardList.backList) { //循环遍历,获得你想退出到
                 //添加判断条件
                [webView goToBackForwardListItem:[webView.backForwardList.backListfirstObject]];
            }
        }
    }

    //容许跳转
    decisionHandler(WKNavigationActionPolicyAllow);
}