WKWebView 重定向url,canGoBack返回YES,goBack返回空白页

问题描述:

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];
        }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容