2017-02-22 6 views
1

Ich versuche, ein WKWebView meiner App hinzuzufügen. Nach der Dokumentation habe ich folgendes implementiert:Swift: WKWebView benötigt Authentifizierung.

Jetzt mein Problem: Die Website, auf die ich versuche zuzugreifen, benötigt eine Authentifizierung. In Safari werde ich gefragt. Aber meine App präsentiert nur den Fehler "404 - diese Website existiert nicht". Nach der Suche bekam ich die Information, dass das Empfangen einer URLAuthenticationChallenge das Problem lösen könnte. Mit Unterlagen und Informationen aus dem Internet, habe ich den folgenden Code:

func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { 

    print("test if pass") 
    let user = "*****" 
    let password = "*****" 
    let credential = URLCredential(user: user, password: password, persistence: URLCredential.Persistence.forSession) 
    challenge.sender?.use(credential, for: challenge) 
} 

ich die print-Anweisung zu sehen hinzugefügt, wenn ich in meinen Code zu bekommen. Aber nach dem Start meiner App gibt es immer noch den Fehler 404 und nichts wurde auf meine Konsole gedruckt.

Kann mir jemand helfen, wie ich die Authentifizierung hinzufügen kann? Thanks :)

Antwort

1

Aktualisieren Sie Ihre Linie,

let myURL = URL(string: "www.myurl.com") 

mit

let myURL = URL(string: "http://username:[email protected]/) 

Das ist mir als die für gleiches Problem helfen. Hoffe das hilft dir auch.

+0

Das funktioniert für mich, aber ich werde auf eine Antwort warten, ohne die URL ein wenig zu ändern, bis ich Ihre als die richtige Antwort markiere :) – Sonius

+0

@Sonius ok, danke. Versuchen Sie, http: // zu Ihrer URL hinzuzufügen und Benutzernamen und Passwort von der Webview-Delegate-Methode zu übernehmen, wie Sie es getan haben. Beispiel: let myURL = URL (Zeichenfolge: "http://www.myurl.com") – sschunara