In meiner App migriere ich von UIWebView zu WKWebView. Wie kann ich diese Funktion für WKWebView umschreiben?
func webViewDidStartLoad(webView: UIWebView){}
func webViewDidFinishLoad(webView: UIWebView){}
und
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
print("webview asking for permission to start loading")
if navigationType == .LinkActivated && !(request.URL?.absoluteString.hasPrefix("http://www.myWebSite.com/exemlpe"))!{
UIApplication.sharedApplication().openURL(request.URL!)
print(request.URL?.absoluteString)
return false
}
print(request.URL?.absoluteString)
lastUrl = (request.URL?.absoluteString)!
return true
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("webview did fail load with error: \(error)")
let testHTML = NSBundle.mainBundle().pathForResource("back-error-bottom", ofType: "jpg")
let baseUrl = NSURL(fileURLWithPath: testHTML!)
let htmlString:String! = "myErrorinHTML"
self.webView.loadHTMLString(htmlString, baseURL: baseUrl)
}
navigationDelegate
von derWKWebView
.Antworten:
UIWebView => WKWebView-Äquivalent
Über
shouldStartLoadWithRequest
Sie können schreiben:Und für die
didFailLoadWithError
:quelle
WKNavigationDelegate
(nichtWKUIDelegate
) deklariert sind .Hier sind die Objective-C- Methoden für die Migration
1) shouldStartLoadWithRequest -> EntscheidungPolicyForNavigationAction
Denken Sie daran, die anzurufen
decisionHandler
2) webViewDidStartLoad -> didStartProvisionalNavigation
3) webViewDidFinishLoad -> didFinishNavigation
4) didFailLoadWithError -> didFailNavigation
quelle
WKNavigationTypeLinkActivated
eher sein alsUIWebViewNavigationTypeLinkClicked
?Migrieren von UIWebView zu WKWebView, Swift 4 :
Äquivalent zu
shouldStartLoadWithRequest
:Äquivalent zu
webViewDidStartLoad
:Äquivalent zu
didFailLoadWithError
:Äquivalent zu
webViewDidFinishLoad
:quelle