Ich versuche, zwischen dem Laden von verschiedenen Webseiten zu wechseln, indem ich das WebView ausgeblendet, während es eine Seite lädt. Ich stelle jedoch fest, dass einige web-basierte Websites WebViewDidFinishLoading veranlassen, zu früh zu feuern, und wenn ich das webView an dieser Stelle zeige, dann erhalten Sie für einen Bruchteil einer Sekunde eine Ansicht der vorherigen Seite. Irgendwelche Ideen, wie man das löst?webViewDidFinishLoad: Feuern zu früh?
12
A
Antwort
4
Wenn Javascript auf der Seite vorhanden ist, müssen Sie möglicherweise warten, bis es fertig ist. Der einfachste Weg zu sein scheint, einige Javascript auf der Seite zu senden, um ausgeführt werden:
-(void) webViewDidFinishLoad:(UIWebView *)webView
{
NSString *javaScript = @"<script type=\"text/javascript\">function myFunction(){return 1+1;}</script>";
[webView stringByEvaluatingJavaScriptFromString:javaScript];
// done here
}
gesagt hat, dass ich scheine Fälle noch zu sehen, wo die Webansicht nicht ganz innerhalb webViewDidFinishLoad aktualisiert.
3
Ich habe dieses Problem auch aufgetreten. Obwohl ich keine Lösung gefunden habe, habe ich das Problem gelöst, indem ich eine Verzögerung von 0,5 Sekunden vor dem Anzeigen des UIWebView einführte, sobald die delegierte Methode webViewDidFinishLoading aufgerufen wurde.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[self performSelector:@selector(displayWebView) withObject:nil afterDelay:0.5];
}
Verwandte Themen
- 1. React-Router - Link feuern zu früh
- 2. Ressourcenmüll zu früh gesammelt
- 3. RegEx passt zu früh
- 4. Verschiebung von ViewWillAppear bis webViewDidFinishLoad
- 5. NodeJs verspricht zu früh zurück
- 6. JDialog kehrt Wert zu früh
- 7. Java Breakout Spiel zu früh zu beenden
- 8. Streaming MPMoviePlayer: Overlay-Taste zu früh angezeigt
- 9. Bluebird - Wie zu brechen Versprechen Kette früh
- 10. completionHandler von AVAudioPlayerNode.scheduleFile() zu früh genannt
- 11. Asp.NET MVC AjaxOptions OnSuccess feuert .. zu früh?
- 12. VideoView triggert OnPreparedListener zu früh für HLS
- 13. SWIG/Java: Objekt wird zu früh erkannt
- 14. CakePHP Memcache Elemente verfallen zu früh
- 15. C# HTTP-Basisauthentifizierungsdaten werden zu früh gesendet
- 16. Android ViewPager onPageSelected() zu früh gefeuert
- 17. Linux Expect Skript beendet zu früh
- 18. Mit Cython zu früh Klassenattribute eingeben
- 19. node.js async.eachSeries Aufruf letzten Callback zu früh
- 20. Wie früh in Golong Walk zu beenden?
- 21. SSH Python Script schließen zu früh
- 22. SVG-Onload-Ereignis zu früh aufgerufen?
- 23. reinigen Weg Ansicht zu zwingen Subviews früh
- 24. OnChange-Ereignis wird zu früh in Dropdown/Eingabe ausgelöst?
- 25. jQuery Deferred Auflösung früh
- 26. Android onActivityResult genannt früh
- 27. Python Tkinter Fehler, "zu früh, um Bild zu erstellen"
- 28. ASP.NET - IHttpModule.BeginRequest feuern 2X, Application_BeginRequest feuern 1X
- 29. Nicht feuern self.viewcontroller.webview.delegate = self + PhoneGap + secondtime
- 30. UIWebViewDelegate: webViewDidFinishLoad nicht während der in-Seitennavigation genannt
Auch dies ist aufgetreten. Javascript ist nicht wirklich fertig, wenn das Ereignis bereits ausgelöst wurde:/ – Danra
Ich habe auch mit diesem Problem zu kämpfen und vermute, dass, obwohl alle Inhalte geladen wurden, die Seite möglicherweise noch nicht gerendert wurde. So siehst du die alte Seite für einen Bruchteil einer Sekunde. In meinem Fall, kein Javascript aber Tonnen und Tonnen von CSS und eine große Last von HMTL. – brainjam