2017-06-29 113 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加载了你的网站。现在,我应该在哪里点击? –