C'è un tag asset Javscript remoto su una pagina HTML locale che sto navigando su WkWebView che non finisce mai di scaricare (nel caso in cui il dispositivo iOS non sia connesso a Internet, o Internet del dispositivo è troppo lento).WKWebView non termina/timeout quando non c'è accesso a Internet
Purtroppo, il WKWebView non interrompe il tentativo di scaricare questo bene né mai passare alla mia WKNavigationDelegate (cioè né -webView:didFailNavigation:withError:
né -webView:didFinishNavigation: neither
sono chiamati), quindi gli utenti sono bloccati con una pagina HTML vuota che mai risolve completamente e mai errori su.
Fortunatamente in alcuni scenari ho eseguito il debugging tramite il debugger JavaScript iOS remoto di iOS, ho notato che abbiamo ricevuto l'errore Failed to load resource: The Internet connection appears to be offline
nella console, ma in altri (come alcuni dispositivi in Modalità aereo) il WKWebView non sembra mai timeout con questo errore o rinuncia, quindi nessun callback WKNavigationDelegate viene attivato.
È possibile riprodurre questo scenario da soli utilizzando il simulatore iOS 8.2 con qualsiasi applicazione iOS WKWebView, accedere a qualsiasi file HTML fornito localmente, quindi aggiungere un tag script con qualsiasi URL remoto, quindi limitare la connessione Internet a "100 % Loss "utilizzando Apple Network Link Conditioner.
Quale sarebbe il modo migliore per forzare un WkWebView a timeout/ritorno tramite un errore o una richiamata di successo al suo WKNavigationDelegate?
Come faccio a verificare in Javascript per vedere se un tag HTML dello script remoto ha terminato il caricamento? Lo script remoto esegue tutto in una funzione immediatamente invocata, quindi non ci sono variabili globali che posso verificare per l'esistenza di. – depthfirstdesigner