Je suis Apache Cordova 3.6.3-0.2.13. Et j'essaie de faire fonctionner les écrans de démarrage. J'ai suivi la documentation sur http://cordova.Apache.org/docs/fr/3.6.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens . Et les icônes fonctionnent, mais aucun succès pour les écrans de démarrage. Nous utilisons également le framework Ionic (version 1.2.8) au-dessus de Cordova.
Ce que j'ai fait:
Ajout d'icônes et d'écrans de démarrage dans le fichier config.xml à la racine du projet:
<preference name="SplashScreen" value="splash"/>
<preference name="SplashScreenDelay" value="10000"/>
<platform name="Android">
<icon src="icons/icon.png"/>
<!-- you can use any density that exists in the Android project -->
<splash src="icons/Android-splash-land-hdpi.png" density="land-hdpi"/>
<splash src="icons/Android-splash-land-ldpi.png" density="land-ldpi"/>
<splash src="icons/Android-splash-land-mdpi.png" density="land-mdpi"/>
<splash src="icons/Android-splash-land-xhdpi.png" density="land-xhdpi"/>
<splash src="icons/Android-splash-port-hdpi.png" density="port-hdpi"/>
<splash src="icons/Android-splash-port-ldpi.png" density="port-ldpi"/>
<splash src="icons/Android-splash-port-mdpi.png" density="port-mdpi"/>
<splash src="icons/Android-splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
Bien sûr, le répertoire icons
existe et les fichiers sont en place. Quand je construis le projet avec ionic run Android
ou cordova run Android
. Le processus de construction crée également les icônes et les écrans de démarrage dans le répertoire platforms/Android/res/drawable
!
De plus, le fichier de configuration situé à platforms/Android/res/xml/config.xml
est correctement mis à jour et les éléments <preference>
et <icon>
et <splash>
sont en place.
J'ai aussi essayé avec le plugin org.Apache.cordova.splashscreen
et aussi sans succès. J'ai ajouté le plugin avec ionic plugin add org.Apache.cordova.splashscreen
et ajouté aussi onDeviceReady
le code navigator.splashscreen.show();
. Mais cela ne montre rien non plus.
Qu'est-ce que j'oublie ici?
Juste eu ce problème moi-même. Change ça
<preference name="SplashScreen" value="splash"/>
à
<preference name="SplashScreen" value="screen"/>
Cela l'a corrigé.
J'ai dû installer le plugin splash screen pour le faire fonctionner
cordova plugin add cordova-plugin-splashscreen
ainsi que l'ajout
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="2000" />
Pour les nouveaux arrivants et ceux qui sont toujours confrontés à ce problème
1) Ajouter les préférences pour l’écran Splash dans config.xml
<preference
name="SplashScreen"
value="screen" />
<preference
name="AutoHideSplashScreen"
value="true" />
<preference
name="SplashScreenDelay"
value="5000" />
<feature name="SplashScreen" >
<param
name="Android-package"
value="org.Apache.cordova.splashscreen.SplashScreen" />
<param
name="onload"
value="true" />
</feature>
2) Déclarez vos écrans de démarrage dans config.xml
<!-- you can use any density that exists in the Android project -->
<splash
density="land-hdpi"
src="res/drawable-land-hdpi/splash.png" />
<splash
density="land-ldpi"
src="res/drawable-land-ldpi/splash.png" />
<splash
density="land-mdpi"
src="res/drawable-land-mdpi/splash.png" />
<splash
density="land-xhdpi"
src="res/drawable-land-xhdpi/splash.png" />
<splash
density="port-hdpi"
src="res/drawable-hdpi/splash.png" />
<splash
density="port-ldpi"
src="res/drawable-ldpi/splash.png" />
<splash
density="port-mdpi"
src="res/drawable-mdpi/splash.png" />
<splash
density="port-xhdpi"
src="res/drawable-xhdpi/splash.png" />
</platform>
3) Enfin, ajoutez cette classe dans la structure de votre projet Android dans le package org.Apache.cordova.splashscreen
ou
installez-le en tant que plugin Cordova.
J'ai eu un problème similaire sur Android, j'ai placé l'écran de démarrage directement dans res/drawable-hdpi
et j'ai obtenu l'erreur suivante lors de la construction de Cordova.
res/drawable-hdpi-v4/DocBackground.png: Invalid file name: must contain only [a-z0-9_.]
Quand j'ai décapitalisé le nom du fichier, dans ~project/icons
, la compilation de Cordova les a copiés dans le dossier res/drawable
et l'écran de démarrage ont fonctionné.
Après avoir suivi attentivement les instructions de l'écran de démarrage de PhoneGap CLI, mon écran de démarrage Android ne s'affiche toujours pas. J'ai ensuite examiné build.gradle sous plates-formes/Android et constaté que les modifications apportées au bloc defaultConfig entraînaient des modifications du fichier AndroidManifest.xml qui empêchaient en définitive le fonctionnement de l'écran de démarrage. Ci-dessous, le bloc defaultConfig que j'utilisais:
defaultConfig {
applicationId "com.leadingedje"
minSdkVersion 17
targetSdkVersion 21
versionCode getAppVersionCode()
versionName getAppVersionName()
}
Lorsque j'ai supprimé ce bloc de build.gradle, l'écran de démarrage a recommencé à fonctionner.
Ajoutez les images Splashscreen aux dossiers comme ci-dessous:
root/res/drawable-land-hdpi/screen.png
root/res/drawable-land-ldpi/screen.png
root/res/drawable-land-mdpi/screen.png
root/res/drawable-land-xdpi/screen.png
root/res/drawable-port-hdpi/screen.png
root/res/drawable-port-ldpi/screen.png
root/res/drawable-port-mdpi/screen.png
root/res/drawable-port-xdpi/screen.png
Ajouter le plug-in Splash Screen au projet Android . (Git: git: //git.Apache.org/cordova-plugin-splashscreen.git)
src/org/Apache/cordova/splashscreen/SplashScreen.Java
Ajouter le fichier javascript du plugin dans actifs/www/js/lib/Android/plugins/cordova-plugin-splashscreen/www / (Git: https://github.com/Apache/cordova-plugin-splashscreen/blob /master/www/splashscreen.js )
Ajouter le plugin entery dans cordova_plugins.js
{
"file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
"id": "cordova-plugin-splashscreen.SplashScreen",
"clobbers": [
"navigator.splashscreen"
]
},
"cordova-plugin-splashscreen": "3.1.0",..
Ajouter le code suivant dans config.xml
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="5000" />
<feature name="SplashScreen">
<param name="Android-package" value="org.Apache.cordova.splashscreen.SplashScreen" />
<param name="onload" value="true" />
</feature>
construisez maintenant le projet Android.
Fin février 2019:
Seulement deux choses que j'ai faites et cela a fonctionné:
Installer le plugin:
cordova plugin add cordova-plugin-splashscreen
Ajouter ci-dessous à config.xml, avoir les images correspondantes
(La 1ère ligne de départ est une taille d'écran générique, si vous voulez)
<platform name="Android">
<splash src="res/screen/Android/splash-2732x2732.png" />
<splash density="land-ldpi" src="res/screen/Android/splash-land-320x200-ldpi.png" />
<splash density="land-mdpi" src="res/screen/Android/splash-land-480x320-mdpi.png" />
<splash density="land-hdpi" src="res/screen/Android/splash-land-800x480-hdpi.png" />
<splash density="land-xhdpi" src="res/screen/Android/splash-land-1280x720-xhdpi.png" />
<splash density="land-xxhdpi" src="res/screen/Android/splash-land-1600x960-xxhdpi.png" />
<splash density="land-xxxhdpi" src="res/screen/Android/splash-land-1920x1280-xxxhdpi.png" />
<splash density="port-ldpi" src="res/screen/Android/splash-port-200x320-ldpi.png" />
<splash density="port-mdpi" src="res/screen/Android/splash-port-320x480-mdpi.png" />
<splash density="port-hdpi" src="res/screen/Android/splash-port-480x800-hdpi.png" />
<splash density="port-xhdpi" src="res/screen/Android/splash-port-720x1280-xhdpi.png" />
<splash density="port-xxhdpi" src="res/screen/Android/splash-port-960x1600-xxhdpi.png" />
<splash density="port-xxxhdpi" src="res/screen/Android/splash-port-1280x1920-xxxhdpi.png" />
</platform>
J'ai résolu le problème en ajoutant une balise splash par défaut
Ajoutez ceci à config.xml dans la destination racine ou dans www/config.xml
<gap:splash src="splash.png" />
J'avais le même problème et je l'ai corrigé en utilisant la configuration suivante: -
installer le plugin splash screen
cordova plugin add cordova-plugin-splashscreen
Ensuite, nous devons ajouter la préférence suivante dans config.xml,
<preference name="SplashScreenDelay" value="3000" />
<preference name="SplashMaintainAspectRatio" value="true" />
Ajoutez les images Splashscreen aux dossiers comme ci-dessous
<platform name="Android">
<splash qualifier="land-hdpi" src="res/screen/Android/splash-land-hdpi.png" />
<splash qualifier="land-ldpi" src="res/screen/Android/splash-land-ldpi.png" />
<splash qualifier="land-mdpi" src="res/screen/Android/splash-land-mdpi.png" />
<splash qualifier="land-xhdpi" src="res/screen/Android/splash-land-xhdpi.png" />
<splash qualifier="land-xxhdpi" src="res/screen/Android/splash-land-xxhdpi.png" />
<splash qualifier="land-xxxhdpi" src="res/screen/Android/splash-land-xxxhdpi.png" />
<splash qualifier="port-hdpi" src="res/screen/Android/splash-port-hdpi.png" />
<splash qualifier="port-ldpi" src="res/screen/Android/splash-port-ldpi.png" />
<splash qualifier="port-mdpi" src="res/screen/Android/splash-port-mdpi.png" />
<splash qualifier="port-xhdpi" src="res/screen/Android/splash-port-xhdpi.png" />
<splash qualifier="port-xxhdpi" src="res/screen/Android/splash-port-xxhdpi.png" />
<splash qualifier="port-xxxhdpi" src="res/screen/Android/splash-port-xxxhdpi.png" />
</platform>
land-ldpi n'est pas une densité mais un qualificatif
Par conséquent, corrigez chaque étiquette de démarrage comme ci-dessous:
<splash qualifier="land-ldpi" src="res/screen/Android/splash-land-ldpi.png" />
Après la configuration ci-dessus, l'étape ci-dessous est très importante,
<platform name="Android">
<preference name="SplashScreen" value="screen" />
</platform>