Phonegap - Begrüßungsbildschirm für Android App

84

Könnte jemand bitte raten, wie ich meiner HTML5 Phonegap-basierten Android App einen Begrüßungsbildschirm hinzufügen kann. Ich möchte nur, dass es beim Laden 5 Sekunden lang angezeigt wird. Auch - kann jemand raten, welche Abmessungen der Begrüßungsbildschirm haben sollte.

Tänzer
quelle
2
Nur ein freundlicher Ratschlag, unter keinen Umständen ist es eine gute Idee, einen Begrüßungsbildschirm in eine mobile App einzubauen. Es wird Ihre Benutzer super wütend machen.
Kurtis Nusbaum
37
Es tut mir leid, Kurtis, ich bin mir nicht sicher, was Sie befürworten. Es gibt viele sehr beliebte mobile Apps, die beim Laden einen Begrüßungsbildschirm anzeigen, ohne die Benutzer zu stören. iOS hat sogar ein speziell für diesen Zweck verursachtes Image Default.png.
Devgeeks
6
@ Devgeeks Ich stimme Kurtis Nusbaum für den Fall zu, dass Sie zum Teufel einen Begrüßungsbildschirm zeigen. Wenn der Start Ihrer Anwendung lange dauert, ist ein Begrüßungsbildschirm mit einer Aktivitätsanzeige wahrscheinlich besser als nichts. Dies ist wahrscheinlich der Grund für die beliebten Anwendungen, über die Sie sprechen. Andernfalls gibt es die gleiche (oder sogar eine größere) Anzahl beliebter mobiler Apps, die keinen Begrüßungsbildschirm anzeigen. Grundsätzlich bringen Sie den Benutzer so schnell wie möglich zur Anwendung. Ein 5-Sekunden-Begrüßungsbildschirm ist jedes Mal eine schlechte Idee, da er die Benutzer langfristig frustriert.
Kinjal Dixit
1
Bitte ... tu es nicht! Splashscreen ist keine gute Idee :) Es ist richtig, dass einige beliebte Apps es haben, aber es bedeutet nicht, dass das eine gute Idee ist;)
Štěpán Víteček
1
Ich denke, Splash-Screens sind eine Frage des Geschmacks / Designs. Natürlich werden die meisten UX-Leute raten, es nicht zu verwenden, aber ich bin mit ihnen nicht einverstanden; Ein 1-Sekunden-Begrüßungsbildschirm schadet nicht, sondern fügt Ihrer App eine "Persönlichkeit" hinzu und legt ein "Thema" fest, das sich von den Tausenden von "Bootstrapish" -Apps abhebt. In meinem Gerät haben mehr als 70% der täglich verwendeten Apps
Begrüßungsbildschirme

Antworten:

176

Um einen Begrüßungsbildschirm in einer PhoneGap Android - Anwendung zu haben , müssen Sie Ihre setzen splash.pngDatei in res/drawable-ldpi, res/drawable-mdpi, res/drawable-hdpi, res/drawable-xhdpi. Wo diese Verzeichnisse niedrige, mittlere, hohe und extra große Punkte pro Zoll darstellen. Sie müssen die Größe Ihrer splash.png (der Dateiname ist hier wichtig) für jedes Verzeichnis ändern, oder Android wird sie für Sie erweitern.

Die Größen jedes Bildes sollten sein:

  • xlarge (xhdpi): mindestens 960 x 720
  • groß (hdpi): mindestens 640 x 480
  • mittel (mdpi): mindestens 470 x 320
  • klein (ldpi): mindestens 426 x 320

Dann müssen Sie in Ihrer Java-Hauptklasse, die DroidGap erweitert, eine Zeile hinzufügen und eine andere ändern. Zuerst hinzufügen:

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

Diese Zeile sollte unter, super.onCreateaber vorher angezeigt werden super.loadUrl. Anschließend müssen Sie Ihre loadUrl-Methode so ändern, dass sie 5 Sekunden lang angehalten wird, bevor Sie die Hauptseite laden. Es würde so aussehen:

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

Das sollte es für dich tun.

Ich habe kürzlich einige Aktualisierungen vorgenommen, wie der SplashScreen unter PhoneGap Android funktioniert. Die Haupt-App wird jetzt geladen, während der Begrüßungsbildschirm angezeigt wird. Dies ist eine große Verbesserung gegenüber dem vorherigen Aufruf des blockierenden Begrüßungsbildschirms. Lesen Sie mehr über die Änderungen in meinem Blog .

Simon MacDonald
quelle
1
Hallo SImon, ich erhalte nur eine Fehlermeldung, dass die Anwendung bei der Implementierung des oben genannten unerwartet gestoppt wurde.
Tänzerin
2
Es scheint ein Problem bei der Verwendung des Timeout-Parameters in PhoneGap 1.2 zu geben. Siehe auch stackoverflow.com/questions/8100219/…
Paul Beusterien
1
Wenn ich das 5-Sekunden-Timeout entferne, wird die App kompiliert und beim Laden kurz angezeigt. Es sieht also so aus, als würde eine Kombination aus oben und einem Timeout-Fix eine Wohltat sein. Prost auf Ihre Hilfe
Tänzer
6
Es ist ein schrecklicher Rat, den Benutzer 5 Sekunden warten zu lassen.
Grahamparks
1
@BallisticPugh Sie möchten ein 9-Patch-Bild verwenden, um zu steuern, was gedehnt wird.
Simon MacDonald
3

In meiner Phonegap-App, Android-Version, löst der Eclipse-Debugger Wutanfälle aus, wenn Sie den Begrüßungsbildschirm oder sogar das Dialogfeld "Laden" festlegen, bevor Sie loadUrl aufrufen.

Beide funktionieren in der tatsächlich auf einem Gerät installierten App, unterbrechen jedoch Ihr Debugging. Also habe ich sie hinter loadUrl gestellt, wo sie keinen Schaden anrichten können und trotzdem gut vor der App selbst angezeigt werden.

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

Ich habe auch dieses Problem in Phonegap Android .. aber jetzt habe ich Lösung.

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.

Bitte bearbeiten Sie Ihre Java-Hauptdatei im Ordner src in Ihrem Projektverzeichnis.

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

quelle
1
Dies kann normalerweise gefunden werden:platforms/android/src/com/[your app name]/[Your App Name.java
Ian Jamieson
Ich habe keine .java-Datei im oben genannten Pfad gefunden
Prak
0

Dies wird wahrscheinlich Ihren Bedürfnissen entsprechen. Sie können alle relevanten Einstellungen, Bilder und Begrüßungsbildschirme von config.xml in einer schönen intuitiven Oberfläche anpassen und hinzufügen.

Ich empfehle, die Datei herunterzuladen und manuell zu installieren. Der webbasierte Luftinstallateur scheint nicht zu funktionieren.

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

Phill Healey
quelle
0

Wenn Sie Cordova> = 3.6 verwenden und Ihre App mit der Cordova-Befehlszeilenschnittstelle config.xmlerstellen , können Sie den Begrüßungsbildschirm aus der Datei heraus konfigurieren . Dies ist ein Beispiel für 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" />

Es gibt auch ein spezielles Plugin zum programmgesteuerten Ein- und Ausblenden des Begrüßungsbildschirms.

Weitere Informationen finden Sie in der Cordova-Dokumentation .

lifeisfoo
quelle