2016-04-07 31 views
8

Il mio problema: L'applicazione ionica sto sviluppando è terribilmente lento, dopo aver scoperto UIWebView è il colpevole che sto cercando un modo per accelerarlo, con WKWebView è la soluzione più promettente.anche progetto di base ionico con il plugin Cordova WKWebview motore produce schermo bianco

Che il mio progetto si presenta come: Quando si imposta un progetto ionico campione (http://ccoenraets.github.io/ionic-tutorial/install-ionic.html per esempio) con l'attuale Cordova 4.1.0 CLI (sto usando ionico 1.2.4) UIWebView viene utilizzato come default. Tuttavia, poiché Cordova 4, il nuovo e più veloce WKWebView è supportato immediatamente e può essere forzato, almeno in iOS 9 (cordova 4 supports WKWebView).

Il plugin ho usato & configurato: via cordova plugin add cordova-plugin-wkwebview-engine è aggiunto il supporto per la piattaforma iOS (9.3 in questo momento). Quando si aggiunge questo plugin e correttamente configurato nel config.xml con

<feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

Quello che ho provato finora: Nel terminale ionic build ios, quindi costruire riesce, e quando si installa l'applicazione tramite XCode 7.3 OS X El Capitan 10.11.3 nel log della console viene stampato il messaggio Using WKWebView ma, subito dopo lo splashscreen, il contenitore dell'app si dissolve in uno schermo bianco di morte. Non appena rimuovo quel plug-in, viene utilizzato UIWebView e l'app funziona come previsto.

Alternativa: sostituendo il plug-in originale wkwebview-engine-localhost con uno con localhost integrato, funziona. Come ho capito, WKWebview dovrebbe essere supportato da cordova e ionico immediatamente, senza dover fare affidamento su alcuni "plug-in lab" con un server integrato, che è stato sviluppato per supportare iOS 8 di cui non ho bisogno. Capisco che WKWebView ha alcune limitazioni rispetto al vecchio UIWebView, specialmente quando si tratta di gestire le affermazioni file://known issues, ma sicuramente c'è qualcuno là fuori che ha ottenuto Ionic + Cordova WKWebView lavorando senza tutti i fastidi che avevo, giusto? Ci devono essere modi migliori per ottenere un semplice miglioramento della velocità per la visualizzazione web.

Ho provato probabilmente ogni soluzione, config, combinazione di plug-in, downgrade della versione di cordova cli (minimo 4.0.0 per il supporto di WKWebView), cancellazione delle cache e ripristino e riavvio del dispositivo, nuova installazione e lettura delle piattaforme e aggiornamento di cordova , npm, vari plugin, ma nessuno di questi non ha aiutato affatto tranne il plugin apache labs sopra o sembrava un enorme casino che non ha cambiato nulla.

Quando eseguo il debug remoto dell'applicazione ios sul dispositivo tramite il mio Safari locale, posso vedere nell'albero degli elementi che il tag body rimane vuoto oppure viene mostrato un semplice segnaposto "ng-view" per un elemento angolare. Ho corretto che ci deve essere un problema con il recupero di file/script angolari attraverso il modo in cui Cordova tramite WKWwebView lo gestisce?

Nota: l'applicazione stessa funziona bene, sia con ionic serve o ionic emulate ios, solo quando la distribuzione a un dispositivo reale su XCode (dal ionic run ios non funziona, ma questa è un'altra storia) viene visualizzata la schermata bianca.

Qualsiasi aiuto è molto apprezzato, poiché mi sembra che debba utilizzare il plug-in localhost + wkwebview o lasciare che gli utenti soffrano a causa della scarsa velocità.

Grazie mille!

risposta

1

Sto cercando di utilizzare CrossWalk per IOS che ha un'implementazione di WkWebView funzionante.

https://crosswalk-project.org/documentation/ios.html

Il progetto è sostenuto da Intel per cui v'è il supporto solido alle spalle.

Un'altra opzione sarebbe provare e installare il seguente plug-in sviluppato da Telerik che scambia un WKWebView.

https://github.com/Telerik-Verified-Plugins/WKWebView

Cordova è anche muovendo per sostenere WKWebView con un plugin pure. Il supporto per WKWebView è terribile. È pieno di bug da quando è uscito su iOS7. Si sta lentamente aggiustando ogni versione di ios.

Ecco sperando che iOS 10 apporti alcuni miglioramenti.

+0

grazie per il tempo dedicato a suggerire alcuni link - hai avuto successo l'integrazione di attraversamento pedonale per iOS in un progetto ionico? sul loro sito http://ionicframework.com/docs/cli/browsers.html afferma che attualmente supportano browser alternativi solo su Android .. su Telerik: richiede cordova 3.x invece di 4.x, che porta un intero gruppo di altri problemi al mio progetto e non supporto nemmeno iOS 8, quindi non sembra essere ancora un'alternativa ragionevole - spero anche che dopo il WWDC di ieri il supporto per WKWebView (di cordova) aumenterà .. – hajn

+0

Ho trovato questo thread che indica che non ci sarà un plug-in Cordova che supporta il crosswalk per iOS poiché non presenta reali vantaggi rispetto all'attuale WKWebView: http://stackoverflow.com/questions/33792527/cordova-crosswalk-ios-still- using-uiwebview – hajn

9

Ho ottenuto un progetto ionic2 che funziona con WKWebview. Credo che i passi che ho preso stanno lavorando per ionic1 così:

1) Installare WKWebview Plugin:

ionic plugin add cordova-plugin-wkwebview-engine

2) Installare Plugin server web locale:

ionic plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugins.git#master:local-webserver

3) Aggiungi/cambia seguendo nel file config.xml:

...

<content src="http://localhost:8080" /> 

...

<allow-navigation href="gap://ready" /> 
<allow-navigation href="http://localhost:*" /> 

...

<feature name="CDVWKWebViewEngine"> 
    <param name="ios-package" value="CDVWKWebViewEngine" /> 
</feature> 
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" /> 
+0

Grazie! Questo ha funzionato per me! @ Ionic 2 – Edgar

+0

Per noi, seguendo questo approccio in iOS9 si ottiene una schermata vuota. Qualche idea? –

+0

Ottimo, ha funzionato anche per me. Sai se utilizzare il plugin localhost riduce in modo significativo i guadagni in termini di prestazioni forniti da WKWebview? – ghego1