2016-12-07 66 views
1

我需要找出將要在WkWebView中加載的URL的導航目標。 WkWebView中的Web應用程序可以配置爲在iframe或新窗口中打開特定鏈接(彈出target="_blank")。在WkWebView中查找導航目標

互聯網上的幾個答案可以很容易地找出鏈接是否將在新框架中打開。以下檢查將執行此操作。回調來自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中造成的。兩種方法都會導致上述條件成立。

編輯:我無法通過導航網址來決定,因爲它不會更改。

回答

0

您可以使用下面的函數來攔截這被點擊的URL,然後寫你的框架邏輯:

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

可悲的是,URL不會改變。這是相同的。 –