2016-01-20 6 views
6

Ho un WKWebView a cui mando i javascript via -[WKWebView evaluateJavaScript:completionHandler:] Periodicamente, la visualizzazione Web restituisce il seguente errore:Che cos'è WKErrorWebViewInvalidated?

Error Domain=WKErrorDomain Code=3 "The WKWebView was invalidated" UserInfo={NSLocalizedDescription=The WKWebView was invalidated

La corrispondente WKError sembra essere WKErrorWebViewInvalidated, ma l'WKError.h sembra solo per dire la seguito su questo errore:

@constant WKErrorWebViewInvalidated    Indicates that the WKWebView was invalidated. 

una volta che ricevo questo errore dal punto di vista web non posso più eseguire qualsiasi successiva JavaScript e ho bisogno di gettare la visualizzazione web via e crearne uno nuovo. Ho cercato online per maggiori dettagli su questo errore, ma non sono stato in grado di trovare nulla di sostanziale. Qualcuno può aiutare a spiegare cosa significa questo errore e come posso eseguire il debug di ciò che potrebbe causarlo. Grazie.

risposta

0

Significa che il processo di contenuto web è morto. Questo è il processo che esegue JavaScript e fa parte della rete del WKWebView.

Purtroppo questo processo è gestito da WebKit e non hai il controllo su di esso. Quindi, se il tuo dispositivo ha poca memoria, c'è un ottimo cambiamento che ucciderà in modo casuale un processo di contenuto web. Questo è quando si riceve l'errore WKErrorWebViewInvalidated.

+4

Sono stato a conoscenza del fatto che se il processo del contenuto Web è morto, si riceve un errore 'WKErrorWebContentProcessTerminated' e si ottiene una' webViewWebContentProcessDidTerminate: 'callback se si utilizza iOS 9+, nessuno dei due viene visualizzato. Questo mi fa pensare che "WKErrorWebViewInvalidated" si riferisce a qualcosa di diverso dal processo che sta morendo. –