App内嵌H5网页点击内部链接跳转问题处理

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的控制器.

你可能感兴趣的:(App内嵌H5网页点击内部链接跳转问题处理)