iPhone – UIWebview – Ottieni l’URL del link cliccato

Sto creando un’app con un campo di testo e pulsante Vai in alto e vista Web sotto di essi. Quando l’utente inserisce l’URL nel campo di testo e fa clic sul pulsante “Vai”, inizierà a caricare la pagina in Webview. Quando l’utente fa clic su qualche link, voglio mostrare l’URL della pagina (in fase di caricamento) nel campo di testo. Come posso ottenere che l’URL del link sia stato cliccato.

Ci sono anche alcuni siti web che reindirizzano su un altro sito. Quindi la mia domanda è come mostrare l’URL della pagina caricata nel campo di testo?

Implementalo nella class UIWebViewDelegate

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { //CAPTURE USER LINK-CLICK. NSURL *url = [request URL]; yourTextBox.text = [url absoluteString]; return YES; } 

Se vuoi specificamente l’url dei link cliccati dall’utente, trovalo in questo modo.

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if (navigationType == UIWebViewNavigationTypeLinkClicked) { NSLog(@"link clicked = %@",request.mainDocumentURL); } return YES; } 

Inoltre, se si desidera l’url di qualsiasi richiesta, richiesta dal lato del cliente sia registrando su un link o specificatamente richiesta da WebView dall’utente, utilizzare

 NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL); 

e se vuoi che l’url attuale richiesto dal lato client sia da te o che venga richiesto dalla pagina che hai aperto automaticamente, usa.

 NSLog(@"link clicked = %@",self.webView.request.URL); 

Questo è tutto ciò che ho trovato dopo una lunga ricerca, potrebbe essere che aiuterà qualcuno.

C’è un metodo delegato per questo scopo, implementarlo in questo modo:

 - (void)webViewDidStartLoad:(UIWebView *)webView { NSURL* url = [webView.request URL]; urlTextField.text = [url absoluteString]; }