phonegap - schermata iniziale per l'app Android


84

Qualcuno potrebbe consigliare come posso aggiungere una schermata iniziale alla mia app Android basata su HTML5 Phonegap. Voglio solo che venga visualizzato per 5 secondi al caricamento. Inoltre, qualcuno può consigliare quali dimensioni dovrebbe essere la schermata iniziale.


2
Solo un consiglio amichevole, in nessun caso è una buona idea mettere una schermata iniziale su un'app mobile. Farà arrabbiare i tuoi utenti.
Kurtis Nusbaum

37
Mi dispiace Kurtis, non sono sicuro di cosa stai sostenendo. Esistono molte app mobili molto popolari che mostrano una schermata iniziale durante il caricamento senza causare fastidio ai loro utenti. iOS ha anche un'immagine causata da Default.png appositamente per questo scopo.
Devgeeks

6
@Devgeeks Sono d'accordo con Kurtis Nusbaum per il caso in cui stai mostrando una schermata iniziale per il gusto di farlo. Se l'avvio dell'applicazione richiede molto tempo, una schermata iniziale con un indicatore di attività probabilmente è meglio di niente, che sarebbe la probabile ragione delle applicazioni popolari di cui stai parlando. Altrimenti ci sono un numero uguale (o anche maggiore) di app mobili popolari che non mostrano la schermata iniziale. Fondamentalmente, porta l'utente all'applicazione il più velocemente possibile. Una schermata iniziale di 5 secondi ogni volta è una cattiva idea in quanto frustrerà gli utenti a lungo termine.
Kinjal Dixit

1
Per favore ... non farlo! Splashscreen non è una buona idea :) È vero che alcune app popolari ce l'hanno, ma non significa che sia una buona idea;)
Štěpán Víteček

1
Penso che gli splash screen siano una questione di gusto / design. Ovviamente la maggior parte delle persone UX consiglierà di non usarlo, ma non sono d'accordo con loro; uno splash screen di 1sec non farà alcun danno, invece, aggiungerà una "personalità" e imposta un "tema" alla tua app facendo risaltare le migliaia di app "bootstrapish". Nel mio dispositivo, più del 70% delle app utilizzate quotidianamente hanno schermate
iniziali

Risposte:


176

Al fine di avere una splash screen in un'applicazione Android PhoneGap è necessario mettere il splash.pngfile in res/drawable-ldpi, res/drawable-mdpi, res/drawable-hdpi, res/drawable-xhdpi. Dove queste directory rappresentano punti per pollice bassi, medi, alti ed extra grandi. Dovrai ridimensionare splash.png (il nome del file è importante qui) per ogni directory o Android lo allungherà per te.

Le dimensioni di ogni immagine dovrebbero essere:

  • xlarge (xhdpi): almeno 960 x 720
  • grande (hdpi): almeno 640 x 480
  • medio (mdpi): almeno 470 x 320
  • piccolo (ldpi): almeno 426 x 320

Quindi nella tua classe Java principale, quella che estende DroidGap, dovrai aggiungere una riga e modificarne un'altra. Prima aggiungi:

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

questa riga dovrebbe apparire sotto super.onCreatema prima super.loadUrl. Quindi dovrai modificare il tuo metodo loadUrl per metterlo in pausa per 5 secondi prima di caricare la pagina principale. Sarebbe simile a questo:

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

Dovrebbe farlo per te.

Di recente ho apportato alcuni aggiornamenti al funzionamento di SplashScreen su PhoneGap Android. L'app principale ora viene caricata mentre viene visualizzata la schermata iniziale. Questo è un grande miglioramento rispetto alla precedente chiamata di blocco della schermata iniziale. Leggi di più sulle modifiche sul mio blog .


1
Ciao SImon, ricevo solo un errore che indica che l'applicazione si è arrestata in modo imprevisto durante l'implementazione di quanto sopra?
Ballerino

2
Sembra che ci sia un problema usando il parametro timeout in PhoneGap 1.2. Vedere anche stackoverflow.com/questions/8100219/...
Paul Beusterien

1
Se rimuovo il timeout di 5 secondi, l'app viene compilata e visualizzata brevemente al caricamento, quindi sembra che una combinazione di quanto sopra con una correzione del timeout funzionerebbe a meraviglia .. applausi per il tuo aiuto
Dancer

6
Richiedere all'utente di attendere 5 secondi è un pessimo consiglio.
Grahamparks

1
@BallisticPugh Si desidera utilizzare un'immagine a 9 patch in modo da poter controllare cosa viene allungato.
Simon MacDonald


3

Nella mia app Phonegap, versione Android, il debugger di Eclipse fa i capricci se imposti la schermata iniziale o anche la finestra di dialogo di "caricamento" prima di chiamare loadUrl.

Entrambi funzioneranno nell'app effettiva installata su un dispositivo, ma interromperanno il debug. Quindi li ho inseriti dietro loadUrl, dove non possono fare danni e vengono comunque visualizzati ben prima dell'app stessa.

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);
    ...
}...

3

Ho anche affrontato questo problema in phonegap Android .. ma ora ho la soluzione.

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.

Modifica il tuo file java principale nella cartella src nella directory del tuo progetto.

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);
     }
}

1
Questo normalmente può essere trovato:platforms/android/src/com/[your app name]/[Your App Name.java
Ian Jamieson

Non ho trovato alcun file .java nel percorso di cui sopra
Prak

0

Questo probabilmente soddisferà le tue esigenze. Ti consente di personalizzare e aggiungere tutte le impostazioni config.xml, le immagini e gli splashscreen pertinenti in una bella interfaccia intuitiva.

Consiglio di scaricare il file e installarlo manualmente. Il programma di installazione dell'aria basato sul web non sembra funzionare.

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


0

Utilizzando Cordova> = 3.6 e creando la tua app con l'interfaccia della riga di comando di Cordova, è possibile configurare la schermata iniziale dal config.xmlfile. Questo è un esempio per 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" />

C'è anche un plug-in dedicato per mostrare / nascondere la schermata iniziale a livello di programmazione.

Vedere la documentazione di Cordova per ulteriori informazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.