big*_*ato 0 uiwebview ios swift
我有一个控制器,它有一个WKWebView实例.但是,我希望它不会向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
//    }
//  }
//}
Run Code Online (Sandbox Code Playgroud)
    我最终这样做了:
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
  }
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1715 次  |  
        
|   最近记录:  |