2014-10-26 8 views
7

Sto sviluppando un'applicazione PhoneGap HTML5, che sta facendo un po 'di manipolazione delle immagini.iOS 8 Webview prestazioni ancora fortemente più lento di Safari mobile

Quello che vedo è che lo stesso script (http://fornace.io/jstests/gogh.html) impiega circa 10 volte in più per eseguire all'interno di PhoneGap rispetto a Safari mobile (da 5 secondi a circa 45).

Dal momento che tutti abbiamo capito che iOS8 Webkit è finalmente allowed all the apps to use the same Nitro engine as Safari, mi chiedo se qualcuno possa spiegare come questa enorme differenza ci sia ancora e se c'è una soluzione alternativa.

risposta

6

Ci sono due diverse visualizzazioni Web da iOS8. Lo standard UIWebView e il nuovo WKWebView.

WKWebView è quello che migliorerà tutto, ma come gli sviluppatori Cordova hanno spiegato in dettaglio here, c'è un bug in cui WKWebView non consente il caricamento di file locali e quindi non può essere implementato con Cordova in questo momento.

Questo spiega il problema che stai vedendo. Apparentemente Apple è a conoscenza del problema e se verrà risolto mi aspetto che venga implementato in Cordova dopo tale orario.

+0

Grazie, che spiega bene. Nel frattempo, risolveremo il porting di una parte del codice in nativo, ma non vedo l'ora di farlo. –

+1

Qualche notizia su questo? –

2

PhoneGap è ancora utilizzando UIWebView causa di un bug con WKWebView, si dovrà implementare un'applicazione nativa che aprirà l'URL con WKWebView per ora fino PhoneGap si sposta WKWebView. Apparentemente il bug è con l'apertura di file locali con WKWebView, se si desidera aprire un URL in WKWebView, è possibile ora.

Ecco un'applicazione di test WebView che è possibile utilizzare per verificare l'URL in WKWebView e UIWebView, e verificare le prestazioni: https://itunes.apple.com/us/app/browser-resizer/id928647773?mt=8&at=10ltWQ

+0

Grazie, è la stessa risposta che Dawson ha dato. Ma ti meriti un upvote per l'app: ho provato e posso vedere che con WKWebView l'esecuzione di questo script è davvero 10 volte più veloce! –

3

Anzi, dobbiamo aspettare per Cordova a supportare il nuovo WKWebView. E Cordova deve aspettare che Apple rilasci una versione fissa di iOS.

Nel frattempo, ho creato un plugin che consentono di utilizzare WKWebView come WebView di default per le applicazioni Cordova. Include alcune correzioni e soluzioni alternative per i bloccanti in cui è avvenuta Cordova.

Grab mentre è fresco al https://github.com/EddyVerbruggen/cordova-plugin-wkwebview

+0

Questo sembra fantastico. Hai incluso un server http? –

+1

Sì, in effetti dovevo (per il caricamento del file locale tramite XHR). Inoltre, il plug-in intercetta le richieste XHR.open per reindirizzarle al server web locale. Funziona piuttosto bene. –

+0

Ottimo lavoro! Lo proverò e ti farò sapere. –

Problemi correlati