App内嵌H5网页点击内部链接解析重定向跳转到原生页面,然后返回后不能显示上一次加载的H5页面的问题
需求描述: 在app里面的网页需要点击跳转到原生页面, 或者是通过重定向到原生页面等.
原创<经过反复多次测验之后,发现如下>
if let currentItemUrl = webView.backForwardList.currentItem?.url {
needAutoPop = false
XELogInfo("XEWebviewController currentItemUrl: \(currentItemUrl)")
} else {
needAutoPop = true
XELogInfo("XEWebviewController currentItemUrl: 为空")
}
decisionHandler(.cancel)
注意: 这里通过webView.canGoBack来判断是不准的, decisionHandler(.cancel)会取消掉当前请求.
如果 webView.backForwardList.currentItem?.url有值, 说明重定向之前肯定是加载的正常网页, 然后取消掉当前请求. 就实现了保持H5网页内容为跳转之前的功能需求, 反之 webView.backForwardList.currentItem?.url没有值, 说明当前链接是直接重定向到原生页面, 要过滤掉当前H5的控制器.
网友评论