ios - swift + WKWebView : How to prevent visits to certain URLs?

标签 ios swift uiwebview

我有一个包含 WKWebView 实例的 Controller 。但是,我希望它不向 Yahoo 加载任何请求。它曾经与 UIWebView 一起工作(下面已注释掉)。我不知道如何使用 WKWebView 来做到这一点。

class WebBrowserViewController: UIViewController {

  let webView = WKWebView()

  override func loadView() {
    super.loadView()

    self.view = self.webView
  }

  override func viewDidLoad() {
    webView.navigationDelegate = self

    let url = NSURL(string: "https://www.google.com")!
    let request = NSURLRequest(URL: url)
    webView.loadRequest(request)
  }
}

extension WebBrowserViewController: WKNavigationDelegate {
  func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    // this prints the right thing, but it doesn't allow me to stop the request
    print(webView.URL?.absoluteString)
  }
}

// WHAT I USED TO HAVE:

//extension WebBrowserViewController: UIWebViewDelegate {
//  func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
//    
//    if visitingYahoo(request.URL?.absoluteString) {
//      return false
//    } else {
//      return true
//    }
//  }
//}

最佳答案

我最终这样做了:

extension WebBrowserViewController: WKNavigationDelegate {
  func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
    print(webView.URL?.absoluteString)
    if urlVideoType(webView.URL!) != VideoUrl.Unknown {
      loadVideo(webView.URL!)
      decisionHandler(.Cancel) //<------------------ this part
    }
    decisionHandler(.Allow) //<------------------ this part
  }
}

关于ios - swift + WKWebView : How to prevent visits to certain URLs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37379146/

相关文章:

ios - 如何在 xcode(swift) 和 phonegap 中将 iPhone 作为后台信标运行

objective-c - 点击带有动画的小图像即可加载更大的图像

swift - macOS 催化剂上钥匙串(keychain)项目的 PersistentRef

Swift AppDelegate 结构用法

ios - WebView iOS - 保持两个 WebView 100% 同步

objective-c - 如何判断 UIWebView 何时完成渲染(未加载)?

ios - NVActivityIndi​​catorView 仅适用于特定 View

ios - 在 AVPlayer 中使用糟糕的互联网播放流

ios - 为什么只为许多单独的触摸创建一个 UIEvent?

ios - 从 TableView 中选择时在多个详细 View 之间切换