介紹
This plugin displays and hides a splash screen during application launch
這個插件顯示和隱藏在應用程序啓動期間的初始螢幕。
安裝插件
cordova plugin add cordova-plugin-splashscreen
支持的平臺
* 亞馬遜火 OS
* Android 系統
* 黑莓 10
* iOS
* Windows Phone 7 和 8
* Windows 8
方法
* splashscreen.hide
* splashscreen.show
splashscreen.hide
隱藏閃屏。
navigator.splashscreen.hide();
splashscreen.show
顯示閃屏。
navigator.splashscreen.show();
您的應用程式無法調用 `navigator.splashscreen.show()`,直到該應用程式已啓動,且觸發了 `deviceready` 事件。 但是,由於通常的閃屏爲了是在您的應用程式啓動之前可以見到,這似乎不符合閃屏的目的。
要是通過在config.xml內設置不顯示閃屏,然後再到頁面啓動過後,調用`navigator.splashscreen.show()`顯示閃屏,但是需要在deviceready事件之後才能觸發,接着又再關閉。
出於此原因,不太可能您需要調用 `navigator.splashscreen.show()`,也沒有這個必要。
使用方式
更改默認閃屏
應用在啓動時,默認帶有下面這個閃屏:
如何更改這個默認配置?
(1)找到 config.xml 文件
這個文件是在cordova項目最外層的config.xml文件(不是某個平臺內的)
目錄結構:
cordovaProjectRoot
├ hooks
├ platforms
├ plugins
├ www
├ res
└ config.xml (找到此文件)
(2)各個平臺下的啓動畫面配置如下:
<platform name="android">
<!-- you can use any density that exists in the Android project -->
<splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
<splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
<splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
<splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>
<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
<platform name="ios">
<!-- images are determined by width and height. The following are supported -->
<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>
<platform name="windows">
<!-- images are determined by width and height. The following are supported -->
<splash src="res/screen/windows/splashscreen.png" width="620" height="300"/>
<splash src="res/screen/windows/splashscreenphone.png" width="1152" height="1920"/>
</platform>
<platform name="blackberry10">
<!-- Add a rim:splash element for each resolution and locale you wish -->
<!-- http://developer.blackberry.com/html5/documentation/rim_splash_element.html -->
<rim:splash src="res/screen/blackberry/splashscreen.png"/>
</platform>
注意:
“src”屬性是相對於項目的根目錄而不是www目錄(見下面的目錄結構)。
(3)放入需要使用的一些啓動畫面的圖片到項目中的res/screen/各個平臺的文件夾,你可以命名任何你喜歡的名字到圖像中。
目錄結構:
cordovaProjectRoot
├ hooks
├ platforms
├ plugins
├ www
│ ├ css
│ ├ img
│ └ js
└ res
└ screen
├ android(啓動圖片擺放處)
├ ios(啓動圖片擺放處)
└ windows(啓動圖片擺放處)
(4)編譯項目
corodva build android
注意:
如果你在config.xml文件中,配置了某個圖片,但是在res/screen/某平臺文件夾內,沒有這個圖片,則會報如下錯誤:
因此,請按需配置。
設置閃屏時間
通過 SplashScreenDelay (數字型,默認爲3000)來設置啓動頁的顯示時間。
<preference name="SplashScreenDelay" value="3000" />
隱藏啓動畫面
如果你不想顯示啓動畫面,可以將 SplashScreenDelay 設置爲 0,那麼程序就直接進入應用主頁
<preference name="SplashScreenDelay" value="0" />
隱藏spinner
默認情況下,啓動頁中間位置會有個loading在旋轉。
如果不需要,可以通過如下配置將其隱藏。
<preference name="ShowSplashScreenSpinner" value="false"/>
手動控制啓動頁的隱藏
默認情況下,啓動畫面展示時間一到就會自動消失。有時我們需要其不要自動消失,而是在程序中進行控制。
比如等到頁面初始化加載數據完畢後再將其隱藏。具體實現步驟如下:
(1)首先在配置中將自動隱藏設爲 false(默認是不手動關閉的true)
<preference name="AutoHideSplashScreen" value="false" />
<preference name="FadeSplashScreen" value="false"/>
(2)在需要的地方使用如下js方法隱藏啓動頁,需要用在deviceready事件之後
setTimeout(function() {
navigator.splashscreen.hide();
}, 3000);