2017-06-29 111 views
0

在我的應用程序中,我使用WK WebView打開一個URL。 URL加載正確,但如果我點擊加載的URL中的某些外部鏈接,它不會重定向到其他網站。UI WebView和WK WebView導航

例如

以下是我的網址 https://www.urlaubstracker.de

在上面的鏈接,不同的節日交易鏈接到外部網站。如果我點擊任何將用戶重定向到其他網站的按鈕,則應用程序無法運行或加載該網址。

我嘗試使用UI WebView,它工作得很好。有人可以指出我在WK WebView中錯過了什麼。

+0

HTTP是不是一個問題在這裏,因爲在我的info.plist程序,我已經做了「應用程序傳輸安全設置 - 允許任意負載爲YES「。 –

+0

添加NSExceptionAllowsInsecureHTTPLoads = YES可能會幫助你。檢查我的答案https://stackoverflow.com/a/44795602/3937664 –

回答

0
  1. 首先,在您的應用程序中啓用ATS。

  2. 現在,請使用此代碼嘗試。

    var webView:WKWebView?

    倍率FUNC viewDidLoad中(){ super.viewDidLoad()

    let webViewConfiguration = WKWebViewConfiguration() 
    webView = WKWebView(frame: view.bounds, configuration: webViewConfiguration) 
    let url = URL(string: "https://www.urlaubstracker.de") 
    let req = NSURLRequest(url: url!) 
    self.webView!.load(req as URLRequest) 
    self.webView?.navigationDelegate = self 
    webView?.navigationDelegate = self 
    webView?.allowsBackForwardNavigationGestures = true 
    webView?.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    view.addSubview(webView!) 
    

    }

    FUNC web視圖(_ web視圖:WKWebView,decidePolicyFor navigationAction:WKNavigationAction,decisionHandler:(@escaping(WKNavigationActionPolicy) - (無效)){ print(「webView:(webView)decidePolicyForNavigationAction:(navigationAction)decisionHandler :((decisionHandler)」)

    switch navigationAction.navigationType { 
    case .linkActivated: 
        if navigationAction.targetFrame == nil { 
         webView.load(navigationAction.request) 
        } 
    default: 
        break 
    } 
    
    decisionHandler(.allow) 
    

    }

+0

@Waleed Asif,我已經嘗試過這樣,它工作正常。 –

+0

我完全使用你的代碼,但它不工作。它正確地加載URL,但每當我點擊應該打開另一個網站的鏈接時,什麼都不會發生,那就是我的問題。使用用戶界面Webview其工作正常bt不與WK網絡視圖,我想使用,因爲它是由蘋果推薦。你能幫我點這裏嗎 –

+0

你能幫我複製一下嗎?我用Webkit加載了你的網站。現在,我應該在哪裏點擊? –