2016-12-24 18 views
6

Cordova CLI 6.4.0 çalışan bir Cordova uygulaması var. Yükleme sırasında, sıçrama ekranından sonra yükte bir 4-6 saniye boyunca boş bir beyaz ekran vardır. Aynı şey uygulama yeniden yükleme sırasında gerçekleşir. Platform.ready etkinliğinden önce ya da içinde, uygulamadan etkinlik yok. Arama yaptıktan sonra, benzer konulardaki insanlar için bir takım başarılar görüyoruz, hepsi de aşağıdaki ekranın etrafındaki konfigürasyon seçeneklerine odaklanıyor, hiçbir öneri veya fikir işe yaramadı. Ben görünüyorCordova, Android, inanılmaz derecede yavaş yükleniyor

Güncelleme miktar ilerleme yapmış ve ben burada ne olup bittiğini daha iyi anlamak düşünüyorum. Burada başka bir yazı Başına Ben bu ikisiyle, şimdi benim config.xml

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

davranış için aşağıdaki satırları eklendi, ardından Anlık Görüntü (, uzun bir süre için genellikle yaklaşık 9 saniye) görüntülenir olmasıdır Sıçrama gider ve uygulamanız yüklenir. Yani artık kötülüğün beyaz bir ekranı değil, sadece benim problemim olan uygulamayı yüklemek için çok yavaş.

/Güncelleme

Açılış Ekranı -> 4-6 saniye boş beyaz ekran -> Sonra uygulama yükler ve deviceReady yangınlar. Bu, SplashScreenDelay = 2000

ile gerçekleşir ya da uygulama hiç yüklenmez ve bunun yerine uygulama yüklenmeden önce boş beyaz ekranın 8-9 saniyesini gösterir. Bu, SplashScreenDelay = 0

ile olur. Ana uygulamamın kurgusunda ve platformda, konsol.log'larım var. Doom'un beyaz ekranı çözülene ve yok olana kadar yangın çıkmaz.

Ben boş bir beyaz ile aşağıdaki seçenekleri

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

ve yavaş davranıyor benim uygulama değil aslında, çünkü o çok kafa karıştırıcı

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

... o, bunun için yükleme bit var denedi Başka herhangi bir şey gerçekleşmeden önce açılış sayfası ve uygulama yüklemesi arasındaki ekran. Bu durumda temelde serbest bırakılmadığı için herhangi bir fikri denemeye açığım.

Bu, iOS'ta hiçbir zaman gerçekleşmez; yapı ve ayarların hepsi aynı, Android'e özgü bir sorun. Çalıştığım cihaz bir Moto E2.

İyonik kullanıyorum ve aşağıda belirtilen eklentilerin bir listesi var, çünkü şu anda en büyük suçlu gibi görünüyor. Nasıl çalıştığını görmek için belirli eklentiler olmadan her şeyi test etmek zorunda kalacağım.

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" 

İşte tam simge/sıçrama tanımlarım.

<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> 
+0

@Joshia İyonik kullanıyor musunuz? Hangi eklentiler var? Bazı sorunlu eklentiler tetikleme cihazı hazır olayı geciktiriyor – Gandhi

+0

@Gandhi Evet. Eklenti listesini orijinal soruya eklemek –

cevap

0

Bulunan diğer bazı SO cevap bir, ama ben çözmüş

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

altına uygulama hala sonsuza kadar sürer (Size, yeniden yönlendirmeden önce deviceready olay beklemek emin ihtiyaç duyacağı mümkündür) Yük (genellikle 9 saniye), ama en azından beyaz ekran saçmalıklardan kaçınıyorum.

0

Bunu daha önce Cordova ile yaşadım. Çözdüğüm bir şekilde başlangıçta boş bir sayfa yüklemek, sonra da gerçek uygulama sayfasına yönlendirmek gerektiğine inanıyorum. Bunu deneyebilir misin?

0

Öğelerin yüklenmesini varlıklarını azaltarak hızlandırabiliriz. Ancak bu mümkün değilse, Kullanıcı deneyimini iyileştirebiliriz (boş ekran göstermek yerine, tüm varlıklar yüklenene kadar açılış ekranını gösterebiliriz).

config.xml dosyasında, otomatik açılış ekranını false olarak ayarlayın.

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

App belirli etkinlikler için ayrı javascript dosyası oluşturun ve javascript dosyasında index.html

bu dosyayı bağlantı, DeviceReady olayı yakalayın. DeviceReady olay işleyicisinde, açılış ekranını gizleyin. Aşağıdaki kodlara bakın.

ionic cordova build --release --prod android 

Bu 15 saniyeden önyükleme zamanı performansını optimize eder ve azaltır (hata ayıklama yapısı): Eğer apk dosyasını oluştururken

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(); 
2

, komuta "--prod" eklemeyi unutmayın Bizim app 3 saniye (üretim kurmak).

+0

Bunu kabul ediyorum. Benim için mükemmel çalıştı –