run - Las pantallas de presentación de Apache Cordova no aparecen en Android
cordova version command (8)
Estoy ejecutando Apache Cordova 3.6.3-0.2.13. Y trato de hacer funcionar las pantallas de bienvenida. He seguido la documentación en http://cordova.apache.org/docs/en/3.6.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens . Y los íconos funcionan, pero no tienen éxito en las pantallas de presentación. También estamos usando el framework Ionic (versión 1.2.8) sobre Cordova.
Que he hecho:
Se agregaron iconos y pantallas de bienvenida a config.xml desde la raíz del proyecto:
<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>
Por supuesto, existe el directorio de icons
y también los archivos están en su lugar. Cuando construyo el proyecto con ionic run android
o cordova run android
. ¡El proceso de compilación también crea los iconos y las pantallas de bienvenida en las platforms/android/res/drawable
directorio platforms/android/res/drawable
!
Además, el archivo de configuración ubicado en platforms/android/res/xml/config.xml
se ha actualizado correctamente y los elementos <preference>
y <icon>
y <splash>
están en su lugar.
También probé con el complemento org.apache.cordova.splashscreen
y tampoco tuve éxito. He agregado el plugin con el plugin ionic plugin add org.apache.cordova.splashscreen
y también onDeviceReady
agregado onDeviceReady
el código navigator.splashscreen.show();
. Pero esto tampoco muestra nada.
¿Que me estoy perdiendo aqui?
Integración de Splashscreen:
Androide
Agregue las imágenes de Splashscreen a las carpetas como a continuación:
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
Agregue el complemento de la pantalla de bienvenida al proyecto de Android. (git: git: //git.apache.org/cordova-plugin-splashscreen.git)
src/org/apache/cordova/splashscreen/SplashScreen.java
Agregue el archivo javascript del complemento en assets / www / js / lib / android / plugins / cordova-plugin-splashscreen / www / (git: https://github.com/apache/cordova-plugin-splashscreen/blob/master/www/splashscreen.js )
Agregue plugin entery en 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",..
Agregue el siguiente código en 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>
Ahora crea el proyecto de Android.
Después de seguir cuidadosamente las instrucciones de la pantalla de bienvenida de la CLI de PhoneGap, la pantalla de bienvenida de Android aún no aparecía. Luego miré build.gradle en plataformas / android y noté que los cambios que realicé en el bloque defaultConfig causaban cambios en AndroidManifest.xml que finalmente impidieron que la pantalla de presentación funcionara. A continuación se muestra el bloque DefaultConfig que estaba usando:
defaultConfig {
applicationId "com.leadingedje"
minSdkVersion 17
targetSdkVersion 21
versionCode getAppVersionCode()
versionName getAppVersionName()
}
Cuando eliminé este bloque de build.gradle, la pantalla de presentación comenzó a funcionar nuevamente.
Me enfrenté al mismo problema y lo solucioné usando la siguiente configuración:
instalar el complemento de la pantalla de bienvenida
cordova plugin add cordova-plugin-splashscreen
A continuación, debemos agregar la siguiente preferencia en config.xml,
<preference name="SplashScreenDelay" value="3000" />
<preference name="SplashMaintainAspectRatio" value="true" />
Agregue las imágenes de Splashscreen a carpetas como a continuación
<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 no es una densidad sino un calificador
Por lo tanto, corrija cada etiqueta de bienvenida de la siguiente manera:
<splash qualifier="land-ldpi" src="res/screen/android/splash-land-ldpi.png" />
Después de la configuración anterior, el siguiente paso es muy importante,
<platform name="android">
<preference name="SplashScreen" value="screen" />
</platform>
Para los recién llegados y aquellos que aún enfrentan este problema
1) Agregue la preferencia de pantalla de Splash en 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) Declare sus pantallas de inicio en 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) Finalmente, agrega esta clase a la estructura de tu proyecto android en el paquete org.apache.cordova.splashscreen
o
instalarlo como complemento Cordova.
Resolví el problema agregando una etiqueta de bienvenida predeterminada
Agregue esto a config.xml en el destino raíz o en www / config.xml
<gap:splash src="splash.png" />
Solo tuve este problema yo mismo. Cambia esto
<preference name="SplashScreen" value="splash"/>
a
<preference name="SplashScreen" value="screen"/>
Esto lo solucionó.
Tuve que instalar el complemento de pantalla de bienvenida para que funcione
cordova plugin add cordova-plugin-splashscreen
además de agregar
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="2000" />
Tuve un problema similar en Android, puse la pantalla res/drawable-hdpi
directamente en res/drawable-hdpi
y obtuve el siguiente error durante la compilación de cordova.
res/drawable-hdpi-v4/DocBackground.png: Invalid file name: must contain only [a-z0-9_.]
Cuando descapitalicé el nombre del archivo, en ~project/icons
, cordova build los copió en la carpeta res/drawable
y se ejecutó la pantalla de bienvenida.