Xcode, Swift, Erkennung hyperlink klicken Sie im UIWebView
Machte ich eine iOS-app mit Xcode und Swift.
Will ich öffnen bestimmter Links im Safari-browser gibt es andere in der Webansicht selbst.
Um dies zu erreichen, werde ich haben, um zu überprüfen, wenn eines hyperlinks geklickt wird.
Dies ist der code den ich bisher:
//
// PushViewController.swift
// App
//
//
import UIKit
class PushViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var openpushmessage: UIWebView!
var weburl:String = "http://www.example.com"
override func viewDidLoad() {
super.viewDidLoad()
let url: NSURL = NSURL(string: weburl)!
let requestURL: NSURLRequest = NSURLRequest(URL: url)
openpushmessage.loadRequest(requestURL)
}
override func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == .linkClicked
{
print("You clicked a hypelink!")
}
return true
}
}
Den code in viewDidLoad()
öffnet die Belastungen der Haupt-URL (http://www.example.com) von meinem server. Das funktioniert auch.
override fun webView[…]
sollten erkennen, wenn ein hyperlink angeklickt wird und dann print("You clicked a hypelink!")
.
Aber leider bin ich immer die folgenden Fehler:
Was mache ich falsch? Wie, um loszuwerden, diese Fehler?
- Haben Sie versucht, reinigen Sie das Projekt ? Entfernen Sie auch das Schlüsselwort override.
- Okay, ich entfernt
override
und ich gereinigt das Projekt aber immer noch das gleiche. Ich bin jetzt zusätzlich bekommen:Use of undeclared type 'URLRequest'
- Ich kopierte Ihre genauen code. Gelöst die Vorschläge, nach denen der endgültige code ist :
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { if navigationType == .linkClicked { print("You clicked a hypelink!") } return true }
und es gibt keine Fehler oder Warnungen. Ich bin mit swift3 so hatte zum beheben von Warnungen. - die swift-version verwenden Sie ?
- Ich bin immer noch mit Swift 2. Keine Ahnung, was ich tun kann?
- Sorry, ich bin nicht vertraut mit swift2 aber eine Sache können Sie versuchen, löschen Sie Ihre Methode und kopieren Sie es aus UIWebViewDelegate. Versuchen Sie auch den Vergleich mit UIWebViewNavigationType.LinkClicked.
Du musst angemeldet sein, um einen Kommentar abzugeben.
bitte versuchen
für swift 3.0
swift 2.2
Extraneous '_' in parameter: 'webView' has no keyword argument name
undBinary operator '==' cannot be applied to operands of type 'UIWebViewNavigationType' and '_'
.Dies ist die funktionierende Lösung (Xcode 7.3.1 und Swift 2.2):
Vielen Dank danhhgl aus freelancer.com!
Denke ich, kann man lösen mit diesem code:
im ios-code:
Mehr details können Sie überprüfen, aus hier: