Sto provando a passare dal caricamento di pagine Web diverse nascondendo la visualizzazione Web mentre sta caricando una pagina. Tuttavia, sto vedendo che alcuni siti web ad alta intensità di immagini stanno facendo sì che webViewDidFinishLoading si attivi troppo presto e quando mostro la webView a quel punto, per una frazione di secondo si ottiene una visualizzazione della pagina precedente. Qualche idea su come risolvere questo?webViewDidFinishLoad: licenziare troppo presto?
12
A
risposta
4
Se c'è JavaScript nella pagina, potrebbe essere necessario attendere che finisca. Il modo più semplice sembra essere quella di mandare qualche javascript per pagina da eseguire:
-(void) webViewDidFinishLoad:(UIWebView *)webView
{
NSString *javaScript = @"<script type=\"text/javascript\">function myFunction(){return 1+1;}</script>";
[webView stringByEvaluatingJavaScriptFromString:javaScript];
// done here
}
Detto questo, mi sembra di vedere ancora casi in cui il WebView non è abbastanza aggiornato entro webViewDidFinishLoad.
3
Ho riscontrato anche questo problema. Sebbene non abbia trovato una soluzione, ho risolto il problema introducendo un ritardo di 0,5 secondi prima di mostrare UIWebView dopo aver chiamato il metodo delegate webViewDidFinishLoading.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[self performSelector:@selector(displayWebView) withObject:nil afterDelay:0.5];
}
Problemi correlati
- 1. mapViewDidFinishLoadingMap: chiamato troppo presto
- 2. AlarmManager innesca PendingIntent troppo presto
- 3. Kernel Linux: udelay() restituisce troppo presto?
- 4. Le sessioni PHP scadono troppo presto
- 5. Asp.NET MVC AjaxOptions OnSuccess spara .. troppo presto?
- 6. Java Breakout gioco in uscita troppo presto
- 7. Evento onload SVG chiamato troppo presto?
- 8. VideoView attiva troppo presto OnPreparedListener per HLS
- 9. Rimandare viewWillAppear fino a webViewDidFinishLoad
- 10. La direttiva ng-cloak viene rimossa troppo presto
- 11. È troppo presto per avviare un progetto Web ASP.NET 5?
- 12. cookie scade o timeout di sessione troppo presto
- 13. Il tempo di Joda si converte in "troppo presto"
- 14. È troppo presto per usare ARC per i nuovi progetti?
- 15. Errore Tkinter Python, "troppo presto per creare l'immagine"
- 16. evento SqliteConnection Traccia rifiutato di licenziare
- 17. Come licenziare programmaticamente UIAlertController senza alcun pulsante?
- 18. Come licenziare l'evento JS nel selenio?
- 19. Visualizzazione di un'immagine con la libreria Tkinter - "troppo presto per creare un'immagine"
- 20. È ancora troppo presto per salire a bordo del treno Python 3?
- 21. Il listener del modello JTable rileva le righe inserite troppo presto (prima che vengano disegnate)
- 22. iOS - il blocco di completamento in UIView animateWithDuration viene chiamato troppo presto
- 23. Gli script in esecuzione in jquery.ajax() pagine caricate eseguono document.ready troppo presto
- 24. Firefox richiama la funzione setTimeout troppo presto (o Date.getTime() è disattivato?)
- 25. Presto su Amazon S3
- 26. Requisiti hardware per Facebook Presto
- 27. NSURLConnection si chiude presto GET
- 28. Le sessioni PHP scadono presto
- 29. Come licenziare le code di Laravel con beanstalkd
- 30. HTTP 400: rilevati caratteri non validi nell'URL. URL di decodifica di IIS troppo presto? Cosa sta succedendo qui?
Incontrato anche questo. Javascript non è realmente pronto quando l'evento è già stato attivato:/ – Danra
Ho anche avuto difficoltà con questo, e sospetto che sebbene tutto il contenuto possa essere stato caricato, la pagina potrebbe non aver ancora eseguito il rendering. Quindi vedi la vecchia pagina per una frazione di secondo. Nel mio caso, niente Javascript ma tonnellate e tonnellate di CSS e un grande carico di HMTL. – brainjam