phonegap - écran de démarrage pour l'application Android

84

Quelqu'un pourrait-il s'il vous plaît indiquer comment je peux ajouter un écran de démarrage à mon application Android basée sur HTML5 Phonegap. Je veux juste qu'il s'affiche pendant 5 secondes en charge. Quelqu'un peut-il également indiquer les dimensions de l'écran de démarrage.

Danseur
la source
2
Juste un conseil amical, en aucun cas ce n'est une bonne idée de mettre un écran de démarrage sur une application mobile. Cela va rendre vos utilisateurs très en colère.
Kurtis Nusbaum
37
Je suis désolé Kurtis, je ne suis pas sûr de ce que vous préconisez. Il existe de nombreuses applications mobiles très populaires qui affichent un écran de démarrage pendant leur chargement sans gêner leurs utilisateurs. iOS a même une image causée par Default.png spécifiquement à cet effet.
Devgeeks
6
@Devgeeks Je suis d'accord avec Kurtis Nusbaum pour le cas où vous montrez un écran de démarrage pour le diable. Si votre application prend beaucoup de temps à démarrer, un écran de démarrage avec un indicateur d'activité vaut probablement mieux que rien, ce qui serait probablement la raison des applications populaires dont vous parlez. Sinon, il existe un nombre égal (voire supérieur) d'applications mobiles populaires qui ne montrent pas d'écran de démarrage. En gros, amenez l'utilisateur à l'application aussi vite que possible. Un écran de démarrage de 5 secondes à chaque fois est une mauvaise idée car cela frustrera les utilisateurs à long terme.
Kinjal Dixit
1
S'il vous plaît ... ne le faites pas! Splashscreen n'est pas une bonne idée :) C'est vrai, certaines applications populaires l'ont, mais cela ne veut pas dire, c'est une bonne idée;)
Štěpán Víteček
1
Je pense que les écrans de démarrage sont une question de goût / de design. Bien sûr, la plupart des utilisateurs UX conseilleront de ne pas l'utiliser mais je ne suis pas d'accord avec eux; un écran de démarrage de 1 seconde ne fera aucun mal, au lieu de cela, il ajoutera une "personnalité" et définira un "thème" à votre application en se démarquant des milliers d'applications "bootstrapish". Sur mon appareil, plus de 70% des applications utilisées quotidiennement ont des écrans de démarrage :)
numediaweb

Réponses:

176

Afin d'avoir un écran de démarrage dans une application Android PhoneGap vous devez mettre votre splash.pngfichier dans res/drawable-ldpi, res/drawable-mdpi, res/drawable-hdpi, res/drawable-xhdpi. Où ces répertoires représentent des points faibles, moyens, hauts et très grands par pouce Vous devrez redimensionner votre splash.png (le nom du fichier est important ici) pour chaque répertoire ou Android l'étirera pour vous.

Les tailles de chaque image doivent être:

  • xlarge (xhdpi): au moins 960 x 720
  • grand (hdpi): au moins 640 x 480
  • moyen (mdpi): au moins 470 x 320
  • petit (ldpi): au moins 426 x 320

Ensuite, dans votre classe Java principale, celle qui étend DroidGap, vous devrez ajouter une ligne et en modifier une autre. Ajoutez d'abord:

super.setIntegerProperty("splashscreen", R.drawable.splash);

cette ligne devrait apparaître sous super.onCreatemais avant super.loadUrl. Ensuite, vous devrez modifier votre méthode loadUrl pour faire une pause de 5 secondes avant de charger la page principale. Cela ressemblerait à ceci:

super.loadUrl("file:///android_asset/www/index.html", 5000);

Cela devrait le faire pour vous.

J'ai récemment mis à jour le fonctionnement du SplashScreen sur PhoneGap Android. L'application principale se charge maintenant pendant que l'écran de démarrage est affiché. Il s'agit d'une grande amélioration par rapport à l'appel précédent de l'écran de démarrage de blocage. En savoir plus sur les changements sur mon blog .

Simon MacDonald
la source
1
Salut SImon je viens d'obtenir une erreur indiquant «l'application s'est arrêtée de manière inattendue lors de la mise en œuvre de ce qui précède?
Danseur
2
Il semble y avoir un problème lors de l'utilisation du paramètre timeout dans PhoneGap 1.2. Voir aussi stackoverflow.com/questions/8100219/…
Paul Beusterien
1
Si je supprime le délai de 5 secondes l'application et affiche brièvement compiles la charge - il ressemble à une combinaison ci - dessus avec une solution de délai d'attente fonctionnerait un régal .. bravo pour votre aide
Danseur
6
Demander à l'utilisateur d'attendre 5 secondes est un conseil terrible.
grahamparks
1
@BallisticPugh Vous voulez utiliser une image à 9 patchs pour pouvoir contrôler ce qui est étiré.
Simon MacDonald
3

Dans mon application Phonegap, version Android, le débogueur Eclipse fait des crises de colère si vous définissez l'écran de démarrage ou même la boîte de dialogue de `` chargement '' avant d'appeler loadUrl.

Les deux fonctionneront dans l'application réelle installée sur un appareil, mais ils interrompront votre débogage. Je les ai donc mis derrière loadUrl, où ils ne peuvent pas nuire et s'afficher bien avant l'application elle-même.

public class App extends DroidGap {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html",5000);
    super.setStringProperty("loadingDialog", "Starting your app...");
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    ...
}...
Wytze
la source
3

J'ai également rencontré ce problème dans phonegap android .. mais maintenant j'ai une solution.

super.setIntegerProperty("splashscreen", R.drawable.splash);(find image under drawable folder named splash,so put splash.png under drawable folder)
super.loadUrl("file:///android_asset/www/index.html",15000);(splash screen will show 15 sec.

Veuillez éditer votre fichier java principal dans le dossier src dans le répertoire de votre projet.

public class radiobiafra extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);

         super.setIntegerProperty("splashscreen", R.drawable.splash);
         super.loadUrl("file:///android_asset/www/index.html",15000);
     }
}

la source
1
Cela peut normalement être trouvé:platforms/android/src/com/[your app name]/[Your App Name.java
Ian Jamieson
Je n'ai trouvé aucun fichier .java dans le chemin susmentionné
Prak
0

Cela répondra probablement à vos besoins. Il vous permet de personnaliser et d'ajouter tous les paramètres, images et écrans de démarrage config.xml pertinents dans une belle interface intuitive.

Je recommande de télécharger le fichier et de l'installer manuellement. Le programme d'installation de l'air basé sur le Web ne semble pas fonctionner.

http://aj-software.com/configap/index.html

Phill Healey
la source
0

En utilisant Cordova> = 3.6 et en construisant votre application avec l'interface de ligne de commande Cordova, il est possible de configurer l'écran de démarrage à partir du config.xmlfichier. Voici un exemple pour Android:

<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>
<preference name="SplashScreenDelay" value="10000" />

Il existe également un plugin dédié pour afficher / masquer l'écran de démarrage par programmation.

Consultez la documentation Cordova pour plus d'informations.

lifeisfoo
la source