So schreibe ich in Swift 2 - eine kleine persönliche Anwendung. Ich frage mich, ob es eine Möglichkeit gibt zu testen, ob die URL eine bestimmte Zeichenfolge enthält, und wenn ja, weiterhin Laden der Seite, sondern auch eine nicht mehr abwendbare BenutzeroberflächenalarmPresent UI Alert Controller beim Laden einer URL mit einer bestimmten Zeichenfolge
Antwort
So haben Sie ein WKWebView und wenn der Benutzer klickt ein Link, den Sie sehen möchten, wenn die URL dieses Links eine bestimmte Zeichenfolge enthält?
Sie sollten Ihre View-Controller wie die Web-Ansicht des navigationDelegate
und dann man die WKNavigationDelegate
Methoden verwenden, um einzurichten können wie
webView(_ webView: WKWebView,
didCommitNavigation navigation: WKNavigation!)
Ich habe WKWebView nicht verwendet, so dass ich bin mir nicht ganz klar darüber, wie Sie erhalten die URL, mit der der Benutzer verknüpft ist. Es sieht so aus, als ob Sie die URL-Eigenschaft der Web-Ansicht in der Methode didCommitNavigation
überprüfen würden.
Es wurde bereits als Navigationsdelegate eingerichtet, (ich denke) - als dies ist in meiner ersten Zeile Code: "Klasse ViewController: UIVi ewController, WKNavigationDelegate {"- nur keine Ahnung, wie man testet, wenn die URL die Zeichenfolge enthält, oder wie man die URL der nächsten Seite bekommt –
Nein, das sagt dem Compiler einfach, dass Ihr View-Controller dem' WKNavigationDelegate 'entspricht 'Protokoll. Als nächstes müssen Sie aus Ihrer Web-Ansicht auf Ihren View-Controller ziehen und die Verbindung zum Navigations-Controller herstellen. Dann müssen Sie die 'webView: didCommitNavigation:' Methode implementieren und wenn sie aufgerufen wird, fragen Sie die Web-Ansicht nach ihrer URL. –
WKWebView hat Eigenschaft namens ‚URL‘, die Ihnen die aktuelle URL zu erhalten, von dieser URL können Sie überprüfen, ob das der oder nicht spezifische URL ist können Sie wie folgt überprüfen:
let strUrl = webview.URL?.absoluteString
if strUrl.lowercaseString.rangeOfString("swift") != nil {
print("Url is found")
//open the UIAlertController
}
Sie können diese Methode jederzeit bei der URL-Ladeanfrage Zeit, WKWebview Delegate-Methode usw. verwenden ...
Ich arbeite in WKWebView nicht UIWebView –