UIWebView get la ruta URL de la request (cadena html)

Soy capaz de cargar una cadena HTML en el UIWebView con CSS obtenida de una fuente en línea. El problema que tengo ahora es get la ruta del enlace que se hizo clic. Si uso esto:

webView.loadHTMLString(finalHtml, baseURL: baseUrl)

Recibo la ruta clic para que sea "/" cuando println(webView.request?.URL.path) en UIWebViewDelegate shouldStartLoadWithRequest .

Si uso esto:

webView.loadHTMLString(finalHtml, baseURL: nil)

Me println(webView.request?.URL.path) "nil" cuando println(webView.request?.URL.path)

Por supuesto, he configurado el baseURL como el website original, pero según mi entendimiento, si el enlace tiene la dirección completa, el baseURL es irrelevante.

¿Algún profesional con algún consejo sobre cómo get la ruta real que se indica en las tags del enlace que se hizo clic? Gracias de antemano = D

EDITAR Cuando click el enlace, aparecerá una window emergente con el enlace correcto. He intentado todo, incluido absoluteString , pero todavía no obtendré el path.

Si webView.loadHTMLString(finalHTML, baseURL: baseURL) e println(webView.request?.URL.path) se println(webView.request?.URL.path) en el mismo bloque de código, el webView no tendrá una propiedad de request no nil todavía, por lo que puede " t obtenga la ruta URL en esa request. UIWebView carga su cadena HTML de forma asíncrona. Puede implementar UIWebViewDelegate para ver cuándo se UIWebViewDelegate un enlace en su UIWebView . Utilice el siguiente método de delegado:

 func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { if navigationType == .LinkClicked { println(request.URL.path) } return true } 

Deje de lado el if navigationType == .LinkClicked condicional si desea ver la ruta de todas las requestes, incluida la navigation hacia atrás, hacia delante, etc.

Eche un vistazo a la Documentación para NSURL.

Además de la ruta, hay una propiedad absoluteString que incluye el host, la URL base, etc.

Parece que eludió a los ojos de todos que cometí un error tonto en mi código. En lugar de webView.request?.URL.path , debería usar request.URL.path . Una cosa muy pequeña que me causó tanta agonía. Entonces, en caso de que alguien sea tan tonto como yo, en your shouldStartLoadWithRequest , use la request lugar de webView.request .