ionic解决启动白屏问题

ionic解决启动白屏问题

参考资料:

  • cordova启动页面和图标的设置
  • ionic2常见问题-启动后白屏问题

app启动后大概有几秒白屏,才会显示首页,下面介绍如何通过设置启动页来解决启动白屏问题:

config.xml配置

在cordova5.0版本以后,需要安装cordova-plugin-splashscreen插件以后才能修改和设置App的启动页面。

安装splashscreen插件:

cordova plugin add cordova-plugin-splashscreen
或
cordova plugin add https:
//github.com/apache/cordova-plugin-splashscreen.git

基本配置

然后在你的config.xml文件中,添加以下代码来设置APP的图标和启动页的图片:

<platform name="android">
<icon density="ldpi" src="res/icon/android/icon-36-ldpi.png" />
<icon density="mdpi" src="res/icon/android/icon-48-mdpi.png" />
<icon density="hdpi" src="res/icon/android/icon-72-hdpi.png" />
<icon density="xhdpi" src="res/icon/android/icon-96-xhdpi.png" />
<icon density="xxhdpi" src="res/icon/android/icon-144-xxhdpi.png" />
<icon density="xxxhdpi" src="res/icon/android/icon-192-xxxhdpi.png" />

<splash density="land-hdpi" src="res/screen/android/splash-land-hdpi.png" />
<splash density="land-ldpi" src="res/screen/android/splash-land-ldpi.png" />
<splash density="land-mdpi" src="res/screen/android/splash-land-mdpi.png" />
<splash density="land-xhdpi" src="res/screen/android/splash-land-xhdpi.png" />
<splash density="port-hdpi" src="res/screen/android/splash-port-hdpi.png" />
<splash density="port-ldpi" src="res/screen/android/splash-port-ldpi.png" />
<splash density="port-mdpi" src="res/screen/android/splash-port-mdpi.png" />
<splash density="port-xhdpi" src="res/screen/android/splash-port-xhdpi.png" />
platform>
<platform name="ios">


<icon src="res/icon/ios/[email protected]" width="180" height="180" />


<icon src="res/icon/ios/icon-60.png" width="60" height="60" />
<icon src="res/icon/ios/[email protected]" width="120" height="120" />

<icon src="res/icon/ios/icon-76.png" width="76" height="76" />
<icon src="res/icon/ios/[email protected]" width="152" height="152" />


<icon src="res/icon/ios/icon-40.png" width="40" height="40" />
<icon src="res/icon/ios/[email protected]" width="80" height="80" />

<icon src="res/icon/ios/icon.png" width="57" height="57" />
<icon src="res/icon/ios/[email protected]" width="114" height="114" />

<icon src="res/icon/ios/icon-72.png" width="72" height="72" />
<icon src="res/icon/ios/[email protected]" width="144" height="144" />

<icon src="res/icon/ios/icon-small.png" width="29" height="29" />
<icon src="res/icon/ios/[email protected]" width="58" height="58" />
<icon src="res/icon/ios/[email protected]" width="87" height="87" />

<icon src="res/icon/ios/icon-50.png" width="50" height="50" />
<icon src="res/icon/ios/[email protected]" width="100" height="100" />


<splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
<splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/>
<splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
<splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
<splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
<splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/>
<splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/>
<splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/>
<splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/>
<splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>
platform>

其他配置

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

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

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

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

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

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

若要使用启动页面淡入淡出的效果,则还需添加如下配置:


<preference name="FadeSplashScreen" value="true" />


<preference name="SplashMaintainAspectRatio" value="true"/>
<preference name="FadeSplashScreenDuration" value="500" />

隐藏启动页

splashscreen插件提供有以下两个方法:

navigator.splashscreen.hide();//隐藏启动页面

navigator.splashscreen.show();//显示启动页面

你可以在$ionicPlatform.ready中调用上面的hide方法,也可以引入$cordovaSplashScreen,然后使用$cordovaSplashScreen.hide()隐藏启动页。如果是ionic2则采用如下方式:

ionic解决启动白屏问题_第1张图片

你可能感兴趣的:(ionic)