WKWebView 重定向url,canGoBack返回YES,
2021-12-16 本文已影响0人
tuesone
问题描述:
WKWebView 重定向url ,方法canGoBack 返回YES 但是 goBack方法执行,页面返回中间页(一般是空白页)。
根据 WKNavigation * navigation = [self.webView goBack]; 其中navigation ==nil 是可以正常返回,判断navigation != nil 在进行加载上一页。
通过 self.webView.backForwardList.backList 获取上一个数据WKBackForwardListItem 进行加载。
WKBackForwardListItem中有三个属性可以参考
URL 当前加载的地址
title 当前页返回的标题
initialURL 当前页初始化地址
1修改代码如下:
if (self.webView.canGoBack ){
WKNavigation * navigation = [self.webView goBack];
if (navigation) {//正常返回的是nil
NSInteger offset = 1;
while (navigation)
{
offset++;
//搜索返回列表中是否有WKNavigation为nil(正常数值)的加载 列表中从倒数第二 加载
if (self.webView.backForwardList.backList.count >= offset){
WKBackForwardListItem *item = [self.webView.backForwardList itemAtIndex:-offset];
navigation = [self.webView goToBackForwardListItem:item];
}
else{//返回列表,没有可用的正确内容 ,直接跳出
[self.navigationController popViewControllerAnimated:YES];
break;
}
}
}
}else{
[self.navigationController popViewControllerAnimated:YES];
}