Istnieje zdalny znacznik zasobu Javscript na lokalnej stronie HTML, do której nawiguję przez WkWebView, która nigdy się nie kończy (zarówno w przypadku, gdy urządzenie iOS nie jest podłączone do Internetu lub internet urządzenia jest zbyt wolny).WKWebView nie kończy/timeout, gdy nie ma dostępu do Internetu
Niestety WKWebView nigdy przerywa próbuje pobrać ten składnik ani nie kiedykolwiek przejść do mojego WKNavigationDelegate (czyli ani -webView:didFailNavigation:withError:
ani -webView:didFinishNavigation: neither
się nazywa), dzięki czemu użytkownicy są skazani na pustej stronie HTML, który nigdy w pełni nie rozwiązuje i nigdy błędów na zewnątrz.
Na szczęście w niektórych scenariuszach debugowałem za pomocą zdalnej przeglądarki Safari iOS, zauważyłem, że dostaliśmy błąd Failed to load resource: The Internet connection appears to be offline
zalogowanego do konsoli, ale w innych (jak niektóre urządzenia w trybie samolotowym) WKWebView nigdy nie wydaje się timeout z tym błędem lub poddaj się, więc nie wywołaj wywołań zwrotnych WKNavigationDelegate.
Możesz samodzielnie odtworzyć ten scenariusz za pomocą symulatora iOS 8.2 z dowolną aplikacją WOSWebView iOS, przejść do dowolnego pliku HTML obsługiwanego lokalnie, a następnie dodać znacznik skryptu z dowolnym zdalnym adresem URL, a następnie zmniejszyć przepustowość połączenia internetowego do "100 % Straty "przy użyciu Apple Network Link Conditioner firmy Apple.
Jaki byłby najlepszy sposób, aby zmusić WkWebView do przekroczenia limitu czasu/powrotu przez błąd lub oddzwonienie do jego WKNavigationDelegate?
Jak mogę sprawdzić w JavaScript, aby zobaczyć, czy tag HTML skryptu zdalnego zakończył się ładowanie? Zdalny skrypt uruchamia wszystko w bezpośrednio wywołanej funkcji, więc nie ma zmiennych globalnych, które mogę sprawdzić pod kątem istnienia. – depthfirstdesigner