Cordova, Android, caricamento incredibilmente lento

Ho un'applicazione Cordova in esecuzione Cordova CLI 6.4.0. Durante il caricamento, è presente una schermata bianca vuota per un solido 4-6 secondi dopo il caricamento dopo la schermata di spruzzatura. La stessa cosa accade durante l'applicazione di ricarica. Nessun evento sparisce dall'applicazione, prima o all'interno dell'evento platform.ready. Dopo la ricerca sembra esserci un successo da parte di persone per problemi simili, tutti centrati sulla schermata di spruzzatura le seguenti opzioni di configuration, nessuno dei suggerimenti o delle idee ha funzionato.

Aggiornare

  • Controlla l'triggers connessione a Internet Android
  • Come creare una paginazione per il layout della tabella creata dynamicmente utilizzando l'insieme visibile?
  • Che cos'è il context in Android?
  • Imansible trovare lo stile 'mapViewStyle' nel tema corrente
  • Difficoltà nell'aggiornamento della tabella SQlite
  • Sono tipi di rifiuti primitivi raccolti in Android?
  • Sembra che ho fatto dei progressi e credo di capire di più quello che sta succedendo. Per un altro post qui ho aggiunto le righe seguenti al mio config.xml

    <preference name="AutoHideSplashScreen" value="false" /> <preference name="SplashScreenDelay" value="10000"/> 

    Il comportmento ora, con questi due, è che la schermata di spruzzatura è visualizzata (per lungo tempo, di solito circa 9 secondi), quindi lo spruzzatore va via e la mia applicazione viene caricata. Quindi non è più uno schermo bianco del male, ma solo un lento app per caricare che è il mio problema.

    /Aggiornare

    Schermata a spruzzo -> Schermo bianco vuoto di 4-6 secondi -> Quindi l'applicazione viene caricata e fireworksReady si spegne. Ciò accade con SplashScreenDelay = 2000

    O non mostrerà la schermata di spruzzatura e invece hanno 8-9 secondi dello schermo bianco vuoto prima che l'applicazione carichi. Ciò accade con SplashScreenDelay = 0

    Ho console.logs nel constructor della mia applicazione principale e sulla piattaforma. Già, né il fuoco finché lo schermo bianco del doom è risolto e andato via.

    Ho provato le opzioni sotto

     <preference name="SplashScreen" value="screen"/> <preference name="SplashScreenDelay" value="2000" /> 

    e

     <preference name="SplashScreenDelay" value="0" /> 

    E 'molto confuso perché non è in realtà la mia applicazione che è lento … sono solo i bit di caricamento, con uno schermo bianco vuoto tra la pagina di spruzzatura e il carico dell'applicazione prima di tutto ciò che accade. Sono aperto a provare tutte le idee in quanto è fondamentalmente un-rilascibile in questo stato.

    Questo non accade in alcun modo su iOS, con la costruzione e le impostazioni tutte identiche, è un problema specifico per Android. Il dispositivo su cui sono in esecuzione è un Moto E2.

    Sto usando Ionic e sotto è una list di plugin inclusi, in quanto sembra che sia il colpevole più probabile in questo momento. Dovrò testare tutto senza alcuni plugin per vedere come funziona.

     cordova-plugin-console 1.0.5 "Console" cordova-plugin-device 1.1.4 "Device" cordova-plugin-facebook4 1.7.4 "Facebook Connect" cordova-plugin-splashscreen 4.0.1 "Splashscreen" cordova-plugin-statusbar 2.2.1 "StatusBar" cordova-plugin-whitelist 1.3.1 "Whitelist" ionic-plugin-keyboard 2.2.1 "Keyboard" 

    Ecco le mie definizioni di icone / splash.

     <platform name="android"> <allow-intent href="market:*" /> <icon platform="android" src="resources/icon.png" /> <icon platform="android" qualifier="ldpi" src="resources/icons/android/icon-36-ldpi.png" /> <icon platform="android" qualifier="mdpi" src="resources/icons/android/icon-48-mdpi.png" /> <icon platform="android" qualifier="hdpi" src="resources/icons/android/icon-72-hdpi.png" /> <icon platform="android" qualifier="xhdpi" src="resources/icons/android/icon-96-xhdpi.png" /> <icon platform="android" qualifier="xxhdpi" src="resources/icons/android/icon-144-xxhdpi.png" /> <icon platform="android" qualifier="xxxhdpi" src="resources/icons/android/icon-192-xxxhdpi.png" /> <splash platform="android" src="resources/splash.png" /> <splash platform="android" qualifier="ldpi" src="resources/screens/android/screen-ldpi-portrait.png" /> <splash platform="android" qualifier="mdpi" src="resources/screens/android/screen-mdpi-portrait.png" /> <splash platform="android" qualifier="hdpi" src="resources/screens/android/screen-hdpi-portrait.png" /> <splash platform="android" qualifier="xhdpi" src="resources/screens/android/screen-xhdpi-portrait.png" /> </platform> 

  • Come fare la visualizzazione Recycler non scorrere quando appbar scatta
  • Come get contatti in ordine dei loro prossimi compleanni?
  • Quando è chiamato View.onMeasure ()?
  • Come triggersre i marcatori di selezione per EditText in PopupWindow?
  • Carica il layout XML dal server (android)
  • Android invertire la transizione elementare condivisa sul retro dopo il cambio di orientamento?
  • 3 Solutions collect form web for “Cordova, Android, caricamento incredibilmente lento”

    Ho provato questo con Cordova prima. Credo che un modo in cui ho risolto fosse quello di caricare inizialmente una pagina vuota, quindi di redirect alla pagina app effettiva. Potresti dare una prova? (È ansible che dovrai aspettare l'evento deviceready prima di redirect, non è sicuro)

    Trovato una sola risposta SO, ma ho risolto con il seguente

     <preference name="AutoHideSplashScreen" value="false" /> <preference name="SplashScreenDelay" value="10000"/> 

    L'applicazione continua a caricare per sempre (di solito circa 9 secondi), ma per lo less eviterò la sciocchezza dello schermo bianco.

    Possiamo velocizzare il carico dell'applicazione riducendo i beni. Ma se non è ansible, possiamo migliorare l'esperienza dell'utente (anziché mostrare lo schermo vuoto, possiamo mostrare lo splashscreen fino a quando non vengono caricate tutte le risorse).

    In config.xml, impostare lo splashscreen automatico su false.

    <preference name="AutoHideSplashScreen" value="false" /> .

    Creare un file JavaScript separato per gli events specifici app e colbind questo file in index.html

    nel file javascript, Catch DeviceReady evento. Nel gestore di events DeviceReady, hide la schermata di spruzzatura. Vedere il codice qui sotto.

     var app = { // Application Constructor initialize: function() { document.addEventListener('deviceready', this.onDeviceReady.bind(this), false); //You can register other plugin specific events here and handle them. }, onDeviceReady: function() { navigator.splashscreen.hide(); } } }; app.initialize(); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.