ios - 在 WkWebView 中找出导航目标

标签 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引起的。这两种方法都会导致上述条件为真。

编辑:我不能通过导航 URL 来决定,因为它不会改变。

最佳答案

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

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

关于ios - 在 WkWebView 中找出导航目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024178/

相关文章:

objective-c - 在 NSScrollView 中禁用 WKWebView 的滚动

ios - 如何在swift 4中对字典数组进行排序

ios - 分段控件未附加到其边界

ios - 将加载回调设置为 WKWebView

ios - “文档”无法转换为 'StitchTask<Document>' 。按照 mongo cloud atlas 上的说明进行操作后会弹出此错误

ios - 使用 watchOS 2 在 Apple Watch 上渲染折线图

ios - WKWebView/UIWebView 获取网站图标

ios - Xcode 5 Interface Builder 设计的浅文本在 iOS 6 上显示为常规粗细

ios - 使用 Core Data Swift 对 TableView 和行进行分段

iphone - 如何用 viewWithTag 隐藏 UILabel?