undeclared type example app iphone url uiwebview request

iphone - type - webview swift 4 example



Obtenga la URL actual de UIWebView (14)

La versión de Matt es mucho más limpia. Recomiendo a todos que usen ese en lugar de esto

Puedes intentar esto:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];

Ya intenté obtener la URL actual de mi UIWebView con: webview.request.URL . Desafortunadamente, el NSURL estaba vacío. ¿Hay algo mal aquí? Estoy trabajando con Xcode 3.2.2 beta 5.

El código anterior debe ejecutarse en el delegado de didStartLoad .


Como UIWebView está en desuso, para WKWebview obtener la url actual es muy simple.

webView.url


EN Swift prueba esto,

func webViewDidFinishLoad(webView: UIWebView){ println(WebView.request?.mainDocumentURL) }


Esto no es correcto, y devolverá un cero:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];

Sin embargo, el código siguiente puede obtener una URL, pero la url puede no ser la URL actual:

NSString *url = _webView.request.URL.absoluteString;

El correcto es:

NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];


Esto siempre funciona .

NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];


Intenté esto para los resultados de búsqueda de Google en iPhone:

NSString* currentURL = webView.request.URL.absoluteString; NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;

¡Ambos devuelven la misma cadena!


Para obtener la URL actual de WKWebView y UIWebview

Aquí está el código.

if (self.wkWebView) { NSString *URL = self.wkWebView.title; }else if(self.uiWebView) { NSString *URL = self.uiWebView.request.title; }


También descubrí que la respuesta aprobada anteriormente no era confiable. Pero con una ligera modificación, parece funcionar siempre:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];

Tenga en cuenta la adición de ".href" al Javascript, ya que está oculto al final de la línea de código.


Utilizo el evento shouldStartLoadWithRequest (UIWebViewDelegate) para capturar las actualizaciones de URL. request.mainDocumentURL.absoluteString le proporcionará la URL de la página web principal (que normalmente es lo que desea), mientras que request.URL.absoluteString incluirá CSS y JavaScript.


aquí el código que uso:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];


aquí está el código que uso para tomar la URL cada vez que navegas a un enlace diferente dentro de la vista web:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView { self.url = aWebView.request.mainDocumentURL; }


implementar el método de delegado,

- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *URL = request.URL.absoluteString; NSLog(@"%@",URL); }

La URL es exactamente lo que necesitabas.



- (void)webViewDidFinishLoad:(UIWebView *)webView{ NSURL *currentURL = [[webView request] URL]; NSLog(@"%@",[currentURL description]); }