/ / स्विफ्ट + WKWebView: कुछ यूआरएल के दौरे को कैसे रोकें? - आईओएस, स्विफ्ट, uiwebview

स्विफ्ट + WKWebView: कुछ यूआरएल के दौरे को कैसे रोकें? - आईओएस, स्विफ्ट, uiwebview

मेरे पास एक नियंत्रक है जिसका एक उदाहरण हैWKWebView। हालांकि, मैं चाहता हूं कि यह याहू को कोई अनुरोध लोड न करें। यह 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
//    }
//  }
//}

उत्तर:

उत्तर № 1 के लिए 4

मैंने अंततः यह किया:

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
}
}