快速处理webview中的target =“ _ blank”

时间:2018-10-27 09:11:13

标签: url uiwebview swift4

我正在实现一个Web视图,以使用Web视图从我的应用程序中的URL加载内容。我希望带有target =“ _ blank”的网址应在浏览器中打开,否则只能在应用程序中打开。

我正在使用

url = NSURL (string: "\(urlBase)\(response![0].Message ?? "")")!
            let requestObj = URLRequest(url: url as URL)
            webVFAI.loadRequest(requestObj)

这会在应用程序中打开url,但我想如果我的URL包含目标=“ _ blank”,则应在浏览器中打开它。如何处理呢? 请指导

1 个答案:

答案 0 :(得分:0)

我刚刚找到了解决方案。我只是检查了自己的pageid,以决定是在浏览器中还是在应用中打开网址 我使用了shouldStartLoadWith函数

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if(condition) {
    switch navigationType {
    case .linkClicked:
        guard let url = request.url else { return true }
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        } else {
            UIApplication.shared.openURL(url)
        }
        return false // opens in browser
    default:
        return true // opens in app
    }
  }
    return true;
}