UIWebView terminato il caricamento Event
Domanda
E 'possibile avviare un evento quando un UIWebView (Iphone) ha finito di caricare l'URL.
Come posso scoprire, la corrente URL del UIWebView?
Soluzione
Sì, è possibile. Utilizzare il protocollo UIWebViewDelegate
e implementare il metodo seguito nella vostra delegato:
- (void)webViewDidFinishLoad:(UIWebView *)webView
Se si desidera che l'URL, è possibile ottenere l'ultima richiesta utilizzando il request
immobile:
webView.request.URL
Altri suggerimenti
Nessuna delle soluzioni trovate lavorato per me.
Poi ho trovato questo esempio che almeno funziona molto meglio di qualsiasi altra soluzione che ho trovato su Google / StackOverflow.
metodo molto semplice:
Passaggio 1:. Imposta UIWebViewDelegate
delegato nel file di intestazione
Passaggio 2: Aggiungi seguente metodo webViewDidFinishLoad
per ottenere corrente URL del webview
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
La risposta di Pascal per il "ottenere l'URL" parte va bene.
Tuttavia!
Dalla documentazione del UIWebViewDelegate, da parte di Apple: "WebViewDidFinishLoad: inviato dopo una vista web finisce di caricare una cornice."
Telaio! = Pagina.
webViewDidFinishLoad viene chiamato quando la pagina viene "fatto carico". Può anche essere chiamato molte volte prima di allora. caricamento della pagina di Amazon.com in grado di generare una dozzina di chiamate verso webViewDidFinishLoad.
Se controlli il sorgente della pagina, allora si può fare un test di carico per esso, e funzionerà, per quel caso. Se vi interessa soltanto ottenere chiamato "dopo che la pagina è fatto carico", quindi webViewDidFinishLoad è adeguata.
Per le pagine arbitrarie, con arbitrario JavaScript, loading banner pubblicitari in perpetuo, o lo scorrimento automatico banner, o di applicazione di un videogioco, l'idea stessa di una pagina di essere "fatto carico" viene wrongheaded.