2015-12-22 14 views
5

Sto utilizzando il plug-in cordova-plugin-wkwebview-engine per eseguire la mia app html5 in Cordova. A causa dell'architettura WKWebView, la webview viene caricata in un altro thread. Ora quando apro un altro thread da Cordova (ad esempio scattare una foto utilizzando il plug-in della fotocamera) e iOS emette un avviso di memoria mentre la vista della videocamera è attiva, la webview viene uccisa.Come impedire a WKWebView di essere chiuso durante l'esecuzione del plug-in Cordova

Apparentemente la vista WKWebView è gestita come thread in background e viene interrotta. Ora quando la fotocamera ritorna, l'app è vuota (schermo bianco) perché la webview non è più lì. In UIWebView (che abbiamo abbandonato a causa di una migliore performance in WKWebView) è stato eseguito sul thread principale dell'app e quindi non è mai stato ucciso.

C'è un modo per impedire la chiusura di WKWebView? Se l'app non riesce a mantenere l'app principale su cui è in esecuzione WKWebView, sarebbe piuttosto inutile se non quella di mostrare gli overlay delle pagine web.

+0

Hai aggiornato al più recente cordova ios 4.0? Vedi questo blogpost da cordova: http://cordova.apache.org/announcements/2015/12/08/cordova-ios-4.0.0.html – Joerg

+0

Sì, sono già su piattaforma iOS 4.0.0 –

+0

Cordova ha annunciato un nuovo aggiornare Cordova 4.0.1 per ios provarlo http://cordova.apache.org/announcements/2015/12/18/cordova-ios-4.0.1.html –

risposta

3

Sembra che ci siano ancora alcuni problemi quando si tratta di gestione della memoria per WKWebView, insieme ad alcune modifiche alla sicurezza di iOS 9 che potrebbero essere utili per risolvere il problema.

HERE è il ragionamento di un portfolio personale di supporto di Apple sul motivo per cui il vostro WKWebView sta tornando in bianco, invece di schiantarsi la vostra applicazione:

Mentre la sua possibile che il processo WKWebView potrebbe superare il suo budget di memoria, così facendo non avrebbe causa la chiusura della tua app e al massimo dovrebbe comportare una visualizzazione vuota.

Inoltre, THIS capannoni questione luce sul NSAppTransportSecurity Protocol (IOS 9 modifiche) che è stato anche causando un problema simile. Anche se non è legato alla memoria, potrebbe essere utile esaminarlo se si sta utilizzando un URL non protetto nell'istanza di WKWebView.

Se stai usando un HTTP URL durante o richiesta, dovrete includere:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/> 
</dict> 

nel File dell'applicazione .plist.

Se siete ancora in grado di risolvere il problema, mi sento di raccomandare di verificare il cromo forum per WKWebView, insieme, probabilmente, abbassando il parametro qualità per la fotocamera plug per ridurre il problema di memoria.