我需要找出将在 WkWebView 中加载的 URL 的导航目标。 WkWebView 内的 Web 应用程序可配置为在 iframe 或新窗口(使用 target="_blank"
弹出)中打开特定链接。
互联网上的几个答案很容易找出链接是否要在新框架中打开。以下检查将执行此操作。回调来自WKNavigationDelegate
:
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
// new frame
}
return nil
}
问题:不知道是target="_blank"
还是iframe引起的。这两种方法都会导致上述条件为真。
编辑:我不能通过导航 URL 来决定,因为它不会改变。
最佳答案
您可以使用以下函数拦截被点击的url,然后编写您的框架逻辑:
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print(\(webView.URL!.absoluteString))
}
关于ios - 在 WkWebView 中找出导航目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024178/