2016-12-24 35 views
6

私はCordova CLI 6.4.0を実行しているCordovaアプリを持っています。ロード中は、スプラッシュ画面の後に4~6秒間白い空白の画面が表示されます。アプリのリロード時にも同じことが起こります。 platform.readyイベントの前または中のいずれかで、アプリからイベントが発生しません。検索した後、同様の問題の人々の成功があるように見えますが、すべてスプラッシュスクリーンを中心に以下の設定オプションがあり、提案やアイディアのどれもうまくいきませんでした。Cordova、Android、非常に遅いローディング

更新

私はいくつかの進歩を遂げているように見えると私はここで何が起こっているかをもっと理解してだと思います。ここでは別のポストごとに私は、これらの2で、今の私のconfig.xml

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

動作に以下の行を追加し、その後、スプラッシュ画面が(、長い時間のために、通常は約9秒)が表示されていることですスプラッシュが消えて、アプリが読み込まれます。だから、もはや邪悪な白いスクリーンではなく、ちょうど私の問題であるアプリケーションをロードするのが非常に遅いです。

/更新

スプラッシュ画面 - > 4-6秒空白の画面 - >そして、アプリの負荷とdeviceReady火災。これはSplashScreenDelay = 2000で発生します。

または、スプラッシュ画面が表示されず、代わりにアプリが読み込まれる前に空白の白い画面が8〜9秒間表示されます。これはSplashScreenDelay = 0で発生します。

私の主なアプリケーションのコンストラクタとplatform.readyにconsole.logsがありますが、運命の白い画面が解決されてなくなるまで起動しません。

私はそれが実際にスローされます私のアプリではありませんので、それはそれは空白で、ちょうどロードビットです...非常に紛らわしいです以下のオプションに

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

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

を試してみましたスプラッシュページとアプリの読み込みの間に何かが起こる前に画面に表示されます。私はこの状態では基本的に解放不可能なので、アイデアを試してみるのは簡単です。

これはiOSではまったく起こりません。ビルドと設定はすべて同じですが、Android固有の問題です。私が走っているのはMoto E2です。

私はIonicを使用していますが、これは含まれているプラ​​グインのリストです。現時点では、これが最も可能性の高い原因です。私はそれがどのように実行するかを見るために特定のプラグインなしですべてをテストしなければならないでしょう。

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" 

ここに私の完全なアイコン/スプラッシュの定義があります。

<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イオンを使用していますか?あなたはどんなプラグインを持っていますか?いくつかの問題のあるプラグインが発射デバイス準備完了イベントを遅らせるので、@ Gandhiはい、私はそうです。 – Gandhi

+0

です。元の質問にプラグインリストを追加 –

答えて

0

が見つかりました1他のいくつかの(それは必ず、あなたがリダイレクトする前にdevicereadyイベントを待つ必要があることはできません)SO答えるが、私は

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

の下にアプリがまだに永遠に取ると解決しています負荷(通常約9秒)が、私は白い画面ナンセンス少なくとも避けてください。

0

私は前にコルドバでこれを経験しました。私が解決した方法の1つは、最初は空のページを読み込んでから、実際のアプリケーションページにリダイレクトすることでした。あなたはそれを試すことがありますか?

0

アセットを減らすことで、アプリケーションの読み込みを高速化できます。しかし、それが不可能な場合は、ユーザーエクスペリエンスを向上させることができます(空白の画面を表示するのではなく、すべてのアセットがロードされるまでスプラッシュスクリーンを表示できます)。

config.xmlで、auto splashscreenをfalseに設定します。

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

は、App特定のイベント用に別のJavaScriptファイルを作成したJavaScriptファイル内のindex.html

でこのファイルをリンクし、DeviceReadyイベントをキャッチ。 DeviceReadyイベントハンドラでスプラッシュ画面を非表示にします。以下のコードを参照してください。

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

あなたはAPKファイルをビルドすると、コマンドで「--prod」を必ず含めてください:

ionic cordova build --release --prod android 

これは、パフォーマンスを最適化し、15秒(デバッグビルド)からのブート時間を短縮〜3秒(プロダクションビルド)をアプリで実行します。

+0

私はこれを受け入れます。それは私にとって完璧に働いた –