在WkWebView

时间:2016-12-07 17:56:09

标签: ios swift wkwebview

我需要找到要在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引起的。这两种方法都会导致上述情况成立。

编辑:我无法通过导航网址决定,因为它不会改变。

1 个答案:

答案 0 :(得分:1)

您可以使用以下函数拦截单击的URL,然后编写框架逻辑:

func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print(\(webView.URL!.absoluteString))
}