問題描述:
WKWebView 重定向url ,方法canGoBack 返回YES 但是 goBack方法執(zhí)行,頁面返回中間頁(一般是空白頁)。
根據(jù) WKNavigation * navigation = [self.webView goBack]; 其中navigation ==nil 是可以正常返回,判斷navigation != nil 在進(jìn)行加載上一頁。
通過 self.webView.backForwardList.backList 獲取上一個(gè)數(shù)據(jù)WKBackForwardListItem 進(jìn)行加載。
WKBackForwardListItem中有三個(gè)屬性可以參考
URL 當(dāng)前加載的地址
title 當(dāng)前頁返回的標(biāo)題
initialURL 當(dāng)前頁初始化地址
1修改代碼如下:
if (self.webView.canGoBack ){
WKNavigation * navigation = [self.webView goBack];
if (navigation) {//正常返回的是nil
NSInteger offset = 1;
while (navigation)
{
offset++;
//搜索返回列表中是否有WKNavigation為nil(正常數(shù)值)的加載 列表中從倒數(shù)第二 加載
if (self.webView.backForwardList.backList.count >= offset){
WKBackForwardListItem *item = [self.webView.backForwardList itemAtIndex:-offset];
navigation = [self.webView goToBackForwardListItem:item];
}
else{//返回列表,沒有可用的正確內(nèi)容 ,直接跳出
[self.navigationController popViewControllerAnimated:YES];
break;
}
}
}
}else{
[self.navigationController popViewControllerAnimated:YES];
}