Ten en cuenta que en las ciencias informáticas cualquier problema puede tener más de una resoluciones, no obstante te mostraremos lo más óptimo y mejor.
Solución:
Agregue la siguiente línea:
completionHandler(NSURLSessionAuthChallengeDisposition.UseCredential, credential)
al final de didReceiveAuthenticationChallenge
resuelve el problema.
llego tarde a la fiesta, pero aun así esto puede ser útil para alguien.
Para admitir el desafío de autenticación en WKWebview Swift 4, complete el código como se muestra a continuación
func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) authenticationMethod == NSURLAuthenticationMethodHTTPDigest
let av = UIAlertController(title: webView.title, message: String(format: "AUTH_CHALLENGE_REQUIRE_PASSWORD".localized, hostname), preferredStyle: .alert)
av.addTextField(configurationHandler: (textField) in
textField.placeholder = "USER_ID".localized
)
av.addTextField(configurationHandler: (textField) in
textField.placeholder = "PASSWORD".localized
textField.isSecureTextEntry = true
)
av.addAction(UIAlertAction(title: "BUTTON_OK".localized, style: .default, handler: (action) in
guard let userId = av.textFields?.first?.text else
return
guard let password = av.textFields?.last?.text else
return
let credential = URLCredential(user: userId, password: password, persistence: .none)
completionHandler(.useCredential,credential)
))
av.addAction(UIAlertAction(title: "BUTTON_CANCEL".localized, style: .cancel, handler: _ in
completionHandler(.cancelAuthenticationChallenge, nil);
))
self.parentViewController?.present(av, animated: true, completion: nil)
else if authenticationMethod == NSURLAuthenticationMethodServerTrust
// needs this handling on iOS 9
completionHandler(.performDefaultHandling, nil);
else
completionHandler(.cancelAuthenticationChallenge, nil);
Más adelante puedes encontrar los comentarios de otros administradores, tú incluso tienes el poder dejar el tuyo si lo crees conveniente.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)