Cordovaバージョン

Splashscreen プラグイン

テスト環境 ( バージョン番号 ) : 6.0.0

このプラグインの詳細は、 こちらの原文 ( GitHub ) をご確認ください。
iOS の場合、SplashScreen プラグインは、iOS プラットフォームに統合され、Launch Image は、Storyboard に置き換えられました。 Storyboard のイメージを設定する方法の詳細は、 SplashScreenドキュメント をご確認ください。

このプラグインを使用して、アプリの起動中に表示 ( または 非表示 ) されるスプラッシュスクリーンを制御します。

プラグイン ID

cordova-plugin-splashscreen

プラグインの追加方法

このプラグインを使用する場合には、Monaca クラウド IDE の [ Cordova プラグインの管理 ] 上で、Splashscreen プラグインを 有効 にします。

対象プラットフォーム

  • Android

peference を使用したカスタマイズ設定

config.xml

  • AutoHideSplashScreen ( 真偽値、デフォルトでは true ) : スプラッシュスクリーンを自動的に非表示にするかを設定します。preference 「 SplashScreenDelay 」 に指定された時間の経過後、スプラッシュスクリーンが非表示になります。

    <preference name="AutoHideSplashScreen" value="true" />
  • SplashScreenDelay ( 数値、デフォルトでは 3000 ) : スプラッシュスクリーンを自動的に非表示にするまでの時間 ( ミリ秒単位 ) を指定します。

    <preference name="SplashScreenDelay" value="3000" />
以前は、ミリ秒ではなく秒単位で値を設定していたため、現在でも、30 未満の値を指定した場合は、「 秒 」 として処理されるようになっています ( 応急的な措置ですので、将来的には廃止します )。

スプラッシュスクリーンを無効にする場合には、次の preference を config.xml に追加します。

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

Android 特有の動作

config.xml には、以下の設定を追加することができます。

<preference name="SplashMaintainAspectRatio" value="true|false" />
<preference name="SplashShowOnlyFirstTime" value="true|false" />
<preference name="SplashScreenSpinnerColor" value="white" />

preference 「 SplashMaintainAspectRatio 」 は、任意の設定です。true に設定した場合、スプラッシュスクリーンの画像は、画面サイズに応じて引き伸ばされるのではなく、縦横比は固定されたまま、拡大 ( または 縮小 ) され表示されます ( CSS の background-size:cover に相当 )。この設定を使用すれば、画像が自然に表示されます。たとえば、画像が風景・文字の場合に有用です。特に、縦横比が異なる画面にも対応できるように、余白部分 ( セーフエリア ) をあらかじめ大きく取っている画像の場合に有用です。

このプラグインでは、端末の向きが変わるたび、スプラッシュ画像を再読み込みします。よって、横方向 ( landscape ) ・縦方向 ( portrait ) 用の画像をそれぞれ使用できます。

SplashShowOnlyFirstTime の設定もオプションです。デフォルトは true です。true に設定した場合、スプラッシュ画面はアプリケーションの起動時にのみ表示されます。しかし、 navigator.app.exitApp() を使用してアプリケーションを終了し、次の起動時にスプラッシュスクリーンを表示させる場合は、このプロパティを false に設定する必要があります (これは、「戻る」ボタンを使ってアプリケーションを終了する場合にも適用されます)。

“SplashScreenSpinnerColor” プリファレンスはオプションで、設定されていない場合は無視されます。 有効な色名または 16 進数の色コードに設定すると、Android 5.0 以降の端末でスピナーの色が変更されます。

メソッド

  • splashscreen.show
  • splashscreen.hide

splashscreen.hide

スプラッシュスクリーンを非表示にします。

navigator.splashscreen.hide();

splashscreen.show

スプラッシュスクリーンを表示します。

navigator.splashscreen.show();

アプリ側では、アプリが起動して、deviceready イベントが発火するまで、navigator.splashscreen.show() を呼び出すことはできません。矛盾しますが、スプラッシュスクリーンは、アプリが起動する前に表示される画面です。よって、このような処理の方法では、スプラッシュスクリーンの表示が遅れてしまうことになります。そこで、前述のように、config.xml に、いくつかの設定をあらかじめしておき、アプリの起動後、直ちに ( アプリが完全に立ち上がる前、および、 deviceready イベントが発火する前 )、スプラッシュスクリーンが自動的に 表示される ようにします。よって、アプリの起動時にスプラッシュスクリーンを表示するために、navigator.splashscreen.show() を使用することは、ほぼありません。

設定例

トップレベルの config.xml ファイル( platforms 配下のファイルではありません)には、ここで指定されているような設定要素を追加します。

src 属性の値は、プロジェクトのルートディレクトリに対して相対的であり、wwwディレクトリではないことに注意してください(下記の「ディレクトリ構造」を参照してください)。ソースイメージに任意の名前を付けることができます。アプリの内部名はCordovaによって決定されます。

ディレクトリ構造:

    projectRoot
        res
            android
                screen
        www
            css
            img
            js
<platform name="android">
    <!-- you can use any density that exists in the Android project -->
    <splash src="/res/android/screen/splash-land-hdpi.png" density="land-hdpi"/>
    <splash src="/res/android/screen/splash-land-ldpi.png" density="land-ldpi"/>
    <splash src="/res/android/screen/splash-land-mdpi.png" density="land-mdpi"/>
    <splash src="/res/android/screen/splash-land-xhdpi.png" density="land-xhdpi"/>

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

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

関連項目: