risposta-alla-domanda-sullo-sviluppo-web-bd.com

Gli splash screen di Apache Cordova non vengono visualizzati in Android

Sto eseguendo Apache Cordova 3.6.3-0.2.13. E provo a far funzionare gli splash screen. Ho seguito la documentazione su http://cordova.Apache.org/docs/en/3.6.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens . E le icone stanno funzionando, ma nessun successo per gli splash screen. Stiamo anche utilizzando il framework Ionic (versione 1.2.8) in cima a Cordova.

Cosa ho fatto:

Aggiunte icone e schermate iniziali a config.xml dalla radice del progetto:

<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>

Ovviamente esiste la directory icons e anche i file sono a posto. Quando costruisco il progetto con ionic run Android o cordova run Android. Il processo di compilazione crea anche le icone e gli splash screen nella directory platforms/Android/res/drawable!

Anche il file di configurazione che si trova su platforms/Android/res/xml/config.xml è correttamente aggiornato e gli elementi <preference> e <icon> e <splash> sono installati.

Ho anche provato con il plugin org.Apache.cordova.splashscreen e anche senza successo. Ho aggiunto il plugin con ionic plugin add org.Apache.cordova.splashscreen e ho anche aggiunto onDeviceReady al codice navigator.splashscreen.show();. Ma questo mostra anche nulla.

Cosa mi manca qui?

26
Mark Veenstra

Ho avuto questo problema da solo. Cambia questo

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

a

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

Questo l'ha risolto.

fonte: http://forum.ionicframework.com/t/need-help-with-displaying-splash-screen-on-Android-cordova-3-6/10436/12

52
Filipe Silva

Ho dovuto installare il plug-in di splash screen per farlo funzionare

cordova plugin add cordova-plugin-splashscreen

così come l'aggiunta

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

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

14
kentrh

Per i nuovi arrivati ​​e coloro che stanno ancora affrontando questo problema

1) Aggiungi la preferenza della schermata Splash in 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) Dichiarare le schermate iniziali in 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) Infine aggiungi questa classe nella tua struttura di progetto Android sotto il pacchetto org.Apache.cordova.splashscreen

installalo come plugin Cordova.

10
Hitesh Sahu

Ho avuto un problema simile su Android, ho inserito lo Splash Screen direttamente in res/drawable-hdpi e ho ottenuto il seguente errore durante la creazione di cordova.

res/drawable-hdpi-v4/DocBackground.png: Invalid file name: must contain only [a-z0-9_.]

Quando ho decapitato il nome del file, in ~project/icons, cordova build li ha copiati nella cartella res/drawable e la schermata di avvio funzionava. 

2
user3094755

Dopo aver seguito attentamente le istruzioni della schermata iniziale di PhoneGap CLI, la schermata iniziale di Android non veniva ancora visualizzata. Ho quindi esaminato build.gradle sotto piattaforme/Android e ho notato che le modifiche apportate al blocco defaultConfig stavano causando modifiche a AndroidManifest.xml che alla fine impedivano il funzionamento della schermata iniziale. Di seguito è riportato il blocco predefinitoConfig che stavo usando:

defaultConfig {
    applicationId "com.leadingedje"
    minSdkVersion 17
    targetSdkVersion 21
    versionCode getAppVersionCode()
    versionName getAppVersionName()
}

Quando ho rimosso questo blocco da build.gradle, la schermata iniziale ha iniziato a funzionare di nuovo.

1
jkwuc89

Integrazione di Splashscreen:

Androide

  1. Aggiungi le immagini di Splashscreen alle cartelle come di seguito:

    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
    
  2. Aggiungi il plug-in splash screen al progetto Android . (Git: git: //git.Apache.org/cordova-plugin-splashscreen.git)

    src/org/Apache/cordova/splashscreen/SplashScreen.Java
    
  3. Aggiungi il plugin javascript file in assets/www/js/lib/Android/plugins/cordova-plugin-splashscreen/www / (Git: https://github.com/Apache/cordova-plugin-splashscreen/blob /master/www/splashscreen.js )

  4. Aggiungi enteria plugin in 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",..   
    
  5. Aggiungi il seguente codice in 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>
    
  6. ora costruisci il progetto Android.

1
Atif Hussain

Fine febbraio 2019:

Solo due cose che ho fatto e ha funzionato:

  • Installa plugin:

    cordova plugin add cordova-plugin-splashscreen

  • Aggiungi sotto a config.xml, hai immagini corrispondenti

(La prima linea splash è una dimensione generica dello schermo, se lo desideri)

<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>
0

Ho risolto il problema aggiungendo il tag splash predefinito

Aggiungi questo a config.xml nella destinazione principale o in www/config.xml

<gap:splash src="splash.png" />
0
Dev

Avevo affrontato lo stesso problema e l'ho risolto utilizzando la seguente configurazione: -

installa il plug-in dello splash screen

cordova plugin add cordova-plugin-splashscreen

Successivamente dobbiamo aggiungere le seguenti preferenze in config.xml,

<preference name="SplashScreenDelay" value="3000" />
<preference name="SplashMaintainAspectRatio" value="true" />

Aggiungi le immagini di Splashscreen alle cartelle come sotto

<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 non è una densità ma un qualificatore

Pertanto, il corretto ogni tag splash come di seguito:

<splash qualifier="land-ldpi" src="res/screen/Android/splash-land-ldpi.png" />

Dopo la precedente configurazione, il passaggio sotto è molto importante,

<platform name="Android">
   <preference name="SplashScreen" value="screen" />
</platform>
0
Nimesh khatri