Ich frage mich, wie ich UIWebView ableiten könnte, um jeden Link, den der Benutzer anlegt, mit einem String am Ende wie "= Human" anzuhängen. Um es klar zu sagen, wenn der Benutzer zu Yahoo.com geht und dann auf einen Link klickt, hat er am Ende noch den "= Human".Unterklasse UIWebView zum Anhängen jedes Links (in Swift)
Antwort
konnte ich UIWebView
Unterklasse Aber die docs sagen:
A WK Objekt WebView zeigt interaktive Web-Inhalte, wie zum Beispiel für einen In-App-Browser.
Für neue Entwicklung, verwenden Sie diese Klasse anstelle der älteren Klasse UI WebView .
Dies funktioniert für mich:
import UIKit
import WebKit
class WebViewController: UIViewController,
WKNavigationDelegate {
var webView: WKWebView!
override func loadView() {
let webView = WKWebView()
webView.navigationDelegate = self
view = webView
let defaultUrl = NSURL(
string: "https://www.yahoo.com"
)
if let validDefaultUrl = defaultUrl {
let yahooRequest = NSURLRequest(URL: validDefaultUrl)
webView.loadRequest(yahooRequest)
}
}
//MARK: - WKNavigationDelegate methods:
func webView(webView: WKWebView,
decidePolicyForNavigationAction navigationAction: WKNavigationAction,
decisionHandler: (WKNavigationActionPolicy) -> Void)
{
print("[me]: In WKWebView delegate method")
if navigationAction.navigationType == .LinkActivated {
print("[me]: User clicked on a link.")
let request = navigationAction.request
if let url = request.URL,
newURL = NSURL(string: url.absoluteString + "=User")
{
print("[me]: New url is valid.")
print("[me]: New url is \(newURL.absoluteString)")
let newRequest = NSMutableURLRequest(URL: newURL)
decisionHandler(.Cancel)
webView.loadRequest(newRequest)
}
}
decisionHandler(.Allow)
}
}
Edit: Eigentlich wird der Code nicht geben Sie die if navigationAction.navigationType == .LinkActivated
Block jedes Mal, wenn ein Link aus irgendeinem Grund angeklickt wird. Manchmal sehe ich nur die Ausgabe:
[me]: In WKWebView Delegatmethode
und ich nicht die Ausgabe sehen:
[me]: User auf einen Link geklickt .
@LeoDabus, Ich bin ein iOS-Anfänger und ich habe diesen Code zusammen von mysellf zusammengestöpselt, indem ich nur auf die Apple Docs und mein BNR IOS Buch schaute. Ich würde gerne wissen, warum es nicht funktioniert. – 7stud
- 1. hold-to-copy in der uiwebview-Unterklasse
- 2. Swift Constraints in Unterklasse
- 3. UIWebView offline Fehler in Swift
- 4. Wie Lokale PDF zum Laden in UIWebView in Swift
- 5. Array Veränderlichkeit anhängen in Swift
- 6. Swift #selector in der Unterklasse
- 7. Unterklasse SpriteKit-Klassen in Swift
- 8. Scaling UIwebview swift
- 9. Swift UIWebView Einschränkungen Vollbild
- 10. Den Cache von UIWebView in Swift löschen
- 11. Unterklasse SKShapeNode mit Swift
- 12. offene Links in Safari nicht uiwebview
- 13. Öffnen Sie Links in Safari statt UIWebVIEW?
- 14. Swift/UIWebView mit xpath/css
- 15. UITableViewCell Unterklasse mit XIB Swift
- 16. Verwenden von UIActivityIndicatorView mit UIWebView in Swift
- 17. UIWebView Windows-Authentifizierung in Swift-Programmierung
- 18. Wie JavaScript-Funktion in Swift UIWebView holen?
- 19. Laden lokalen HTML in UIWebView mit swift
- 20. Deep-Links in Swift konfigurieren?
- 21. UIWebView Telefon Links Erkennung auf iPhone
- 22. Erstellen einer NSMutabaleArray-Unterklasse in Swift
- 23. NSNotification Unterklasse mit Generics in Swift 2.1
- 24. Call Swift-Funktion mit Javascript mit UIWebview
- 25. JQuery: Attributwert an jedes Element anhängen
- 26. CSV- oder Textdatei in Swift 2 anhängen
- 27. Ein Objekt in openstack swift anhängen
- 28. Swift: Überschreiben von Typalias innerhalb der Unterklasse
- 29. Unterklasse oder nicht Unterklasse
- 30. UIMenuController Bearbeitungsmenü in UIWebView erscheint nur zum zweiten Mal
Keine Notwendigkeit. Sie können den Navigationstyp überprüfen. http://StackOverflow.com/a/36436728/2303865 –
@LeoDabus Aber das überprüft nur mit einem bool. Gibt es eine Methode, die ich aufrufen und die gewünschte URL (wie die angehängte) zurückgeben kann. – jordanbana
Sie müssen zeigen, was Sie erreichen möchten. Fügen Sie einfach dieses Suffix der URL AbsoluteString ist ziemlich einfach –