I am currently developing Ionic2 app. I face a problem that after Splash screen, there is a white screen for 6-7 seconds, before app home screen.
I tried some googling but nothing works. My last attempt to solve is
hideSplashScreen() {
if(Splashscreen){
setTimeout(() => {
Splashscreen.hide();
},100)
}
};//
<preference name="SplashMaintainAspectRatio" value="true"/>
<preference name="FadeSplashScreenDuration" value="300"/>
Please help me in this issue;
EDIT:: My ionic info
is
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.4
Ionic CLI Version: 2.1.17
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: 1.8.6
OS: OS X El Capitan
Node Version: v6.3.1
Xcode version: Xcode 7.2 Build version 7C68
Add the --prod flag during any of the following CLI commands:
More info of build (prepare + compile) an Ionic project for a given platform https://ionicframework.com/docs/cli/cordova/build/
Updating Ionic project and change some preferences did the trick for me.
Here the changelog and infos.
1 - Update to the latest version of the
Ionic CLI
,Cordova
andTypescript
:2 - Update your package.json to match the following dependencies, remove existing node_modules directory, and then run
npm install
:3 - Update your config.xlm with these preferences (live review is ok):
4 - Then I have copy/pasted some code that had been modified recently from here into my project (Ionic 2 demo and up to date app - Check the Github).
Now the application starts successfully without long splashscreen.
ps:
ionic run android -l
ionic run android --prod --release
this.platform.ready().then(() => { Splashscreen.hide(); });
EDIT: Update to Ionic v3.1.1 (2017-04-28)
By default, the splash screen is hidden after 3 seconds (see https://github.com/apache/cordova-plugin-splashscreen#configxml). But it could be that at this moment your app is not ready.
Therefore I add always the following preference to my config.xml:
Instead, I hide it manually, as soon as the app is ready:
This is working on iOS as well as on Android.
I’ve solved that issue by setting the correct parameters on config.xml
Then, on my platform.ready() instruction all I do is Splashscreen.hide();