Próbuję przejść między ładowaniem różnych stron internetowych, ukrywając podgląd strony podczas ładowania strony. Jednak widzę, że niektóre witryny intensywnie wyświetlające obraz powodują, że webViewDidFinishLoading wystrzeliwuje zbyt wcześnie i kiedy wyświetlam webView w tym momencie, przez ułamek sekundy dostajesz widok poprzedniej strony. Wszelkie pomysły, jak rozwiązać ten problem?webViewDidFinishLoad: Wypalanie zbyt szybko?
12
A
Odpowiedz
4
Jeśli na stronie jest JavaScript, może być konieczne poczekać na zakończenie. Najprostszym sposobem wydaje się wysłać jakiś skrypt na stronę do wykonania:
-(void) webViewDidFinishLoad:(UIWebView *)webView
{
NSString *javaScript = @"<script type=\"text/javascript\">function myFunction(){return 1+1;}</script>";
[webView stringByEvaluatingJavaScriptFromString:javaScript];
// done here
}
Mimo, że wydaje mi się jeszcze zobaczyć przypadki, w których nie jest całkiem WebView aktualizowane w ciągu webViewDidFinishLoad.
3
Również napotkałem ten problem. Chociaż nie znalazłem rozwiązania, pracowałem nad problemem, wprowadzając 0,5-sekundowe opóźnienie przed wyświetleniem interfejsu UIWebView po wywołaniu metody delegowania webViewDidFinishLoading.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[self performSelector:@selector(displayWebView) withObject:nil afterDelay:0.5];
}
Powiązane problemy
- 1. Zniknięcie JQuery zanikanie zbyt szybko
- 2. Dla poleceń używając devenv.exe biegnie zbyt szybko
- 3. Sesje PHP zbyt szybko tracą czas
- 4. Wideo interfejsu API Android MediaCodec gra zbyt szybko
- 5. Start programu MediaRecorder(), jeśli zostanie wywołany zbyt szybko
- 6. Spring @ Prestroy: Brak logowania, ponieważ logback zatrzymuje się zbyt szybko
- 7. setNeedsDisplay nie wypalanie DrawRect
- 8. webhooks woocommerce nie wypalanie
- 9. DataTrigger nie wypalanie
- 10. Niestandardowe Walidator nie wypalanie
- 11. webViewDidFinishLoad wywoływana wiele razy dla pojedynczego żądania obciążenia
- 12. Jak szybko nauczyć się WebGL?
- 13. iPad touchstart wypalanie dwa razy
- 14. jQuery .validate() submitHandler nie wypalanie
- 15. Swift 3 czasowy nie wypalanie
- 16. zdarzenie GridView RowCommand nie wypalanie
- 17. Niezamierzone tStringGrid.OnFixedCellClick wypalanie za tOpenDialog
- 18. Zatrzymaj wypalanie popstate na haszyszu
- 19. Wypalanie zdarzenia klawiatury w JavaScript
- 20. Zdarzenie onDrop TableDnD nie wypalanie
- 21. Delphi: Nie można przechwycić Ctrl + C, jeśli użytkownik zbyt szybko nacisnął sekwencję.
- 22. Gra w cymbergaja - gracz nietoperz przechodzi przez krążek, jeśli porusza się zbyt szybko.
- 23. Wydarzenie LongClick dzieje się zbyt szybko. Jak mogę zwiększyć czas clicktime wymagany do uruchomienia?
- 24. Zanikanie Jquery'ego jest zbyt szybkie.
- 25. Bezpiecznie i szybko FFT
- 26. awk asocjacyjna rośnie szybko
- 27. Wybierz losowe próbkowanie z sqlserver szybko
- 28. mouseenter/wydarzenia mouseLeave nie wypalanie elementów SVG korzystających jQuery.on
- 29. Wypalanie zdarzenia change gdy nieruchomość widok nokaut model jest aktualizowany
- 30. Wypalanie wydarzenie $ zegarek ręcznie w angularjs
Napotkano to również. JavaScript nie jest tak naprawdę gotowy, gdy zdarzenie już się zwolniło:/ – Danra
Również borykałem się z tym problemem i podejrzewam, że chociaż cała zawartość mogła zostać załadowana, strona mogła jeszcze nie zostać renderowana. Więc widzisz starą stronę przez ułamek sekundy. W moim przypadku nie ma JavaScript, ale ton i ton CSS i dużego obciążenia HMTL. – brainjam