phonegap - ekran powitalny dla aplikacji na Androida

84

Czy ktoś mógłby doradzić, jak mogę dodać ekran powitalny do mojej aplikacji na Androida opartej na HTML5 Phonegap. Chcę, aby po załadowaniu wyświetlał się przez 5 sekund. Również - czy ktoś może doradzić, jakie wymiary powinien mieć ekran powitalny.

Tancerz
źródło
2
To tylko przyjazna rada, pod żadnym pozorem nie jest dobrym pomysłem umieszczanie ekranu powitalnego w aplikacji mobilnej. Twoi użytkownicy będą bardzo źli.
Kurtis Nusbaum
37
Przykro mi Kurtis, nie jestem pewien, za czym się opowiadasz. Istnieje wiele bardzo popularnych aplikacji mobilnych, które podczas ładowania wyświetlają ekran powitalny, nie powodując irytacji użytkowników. iOS ma nawet obraz spowodowany Default.png specjalnie do tego celu.
Devgeeks
6
@Devgeeks Zgadzam się z Kurtisem Nusbaumem, jeśli chodzi o przypadek, w którym pokazujesz ekran powitalny. Jeśli uruchomienie aplikacji zajmuje dużo czasu, ekran powitalny ze wskaźnikiem aktywności prawdopodobnie lepszy niż nic, co byłoby prawdopodobnym powodem pojawienia się popularnych aplikacji, o których mówisz. W przeciwnym razie istnieje równa (lub nawet większa) liczba popularnych aplikacji mobilnych, które nie wyświetlają ekranu powitalnego. Krótko mówiąc, przekaż użytkownika do aplikacji tak szybko, jak to tylko możliwe. 5-sekundowy ekran powitalny za każdym razem jest złym pomysłem, ponieważ na dłuższą metę może frustrować użytkowników.
Kinjal Dixit
1
Proszę ... nie rób tego! Ekran powitalny nie jest dobrym pomysłem :)
Racja
1
Myślę, że ekrany powitalne to kwestia gustu / projektu. Oczywiście większość ludzi UX odradzi jej używanie, ale ja się z nimi nie zgadzam; Ekran powitalny trwający 1 sekundę nie zaszkodzi, zamiast tego doda „osobowość” i ustawi „motyw” dla Twojej aplikacji, wyróżniając się spośród tysięcy aplikacji „bootstrapowych”. Na moim urządzeniu ponad 70% aplikacji używanych codziennie ma ekrany powitalne :)
numediaweb

Odpowiedzi:

176

W celu uzyskania ekran powitalny w aplikacji PhoneGap Android trzeba umieścić splash.pngplik w res/drawable-ldpi, res/drawable-mdpi, res/drawable-hdpi, res/drawable-xhdpi. Gdzie te katalogi przedstawiają małe, średnie, wysokie i bardzo duże punkty na cal. Będziesz musiał zmienić rozmiar swojego splash.png (nazwa pliku jest tutaj ważna) dla każdego katalogu lub Android rozciągnie go za Ciebie.

Rozmiary każdego obrazu powinny wynosić:

  • xlarge (xhdpi): co najmniej 960 x 720
  • duży (hdpi): co najmniej 640 x 480
  • średni (mdpi): co najmniej 470 x 320
  • mały (ldpi): co najmniej 426 x 320

Następnie w swojej głównej klasie Java, tej, która rozszerza DroidGap, musisz dodać jedną linię i zmodyfikować drugą. Najpierw dodaj:

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

ta linia powinna pojawić się pod super.onCreateale wcześniej super.loadUrl. Następnie musisz zmodyfikować metodę loadUrl, aby wstrzymać na 5 sekund przed załadowaniem strony głównej. Wyglądałoby to tak:

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

To powinno wystarczyć.

Niedawno wprowadziłem kilka aktualizacji dotyczących działania SplashScreen w PhoneGap Android. Główna aplikacja ładuje się teraz podczas wyświetlania ekranu powitalnego. To duża poprawa w stosunku do poprzedniego wywołania ekranu powitalnego blokującego. Przeczytaj więcej o zmianach na moim blogu .

Simon MacDonald
źródło
1
Cześć Snu, Po prostu pojawia się błąd z informacją, że aplikacja nieoczekiwanie przestała działać podczas wdrażania powyższego?
Dancer
2
Wydaje się, że występuje problem z użyciem parametru limitu czasu w PhoneGap 1.2. Zobacz także stackoverflow.com/questions/8100219/…
Paul Beusterien
1
Jeśli usunę 5-sekundowy limit czasu, aplikacja skompiluje się i wyświetli na krótko po załadowaniu - więc wygląda na to, że połączenie powyższego z poprawką limitu czasu zadziała ... Pozdrawiam za pomoc
Dancer
6
Wymaganie od użytkownika odczekania 5 sekund to straszna rada.
grahamparks
1
@BallisticPugh Chcesz użyć 9-poprawkowego obrazu, aby móc kontrolować, co jest rozciągane.
Simon MacDonald
3

W mojej aplikacji Phonegap, wersja na Androida, debugger Eclipse wywołuje napady złości, jeśli ustawisz ekran powitalny lub nawet okno dialogowe „wczytywania” przed wywołaniem loadUrl.

Oba będą działać w rzeczywistej aplikacji zainstalowanej na urządzeniu, ale zakłócą debugowanie. Więc umieściłem je za loadUrl, gdzie nie mogą wyrządzić krzywdy i nadal dobrze się prezentują przed samą aplikacją.

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
źródło
3

Też napotkałem ten problem w phonegap android .. ale teraz mam rozwiązanie.

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.

Edytuj główny plik java w folderze src w katalogu projektu.

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

źródło
1
Zwykle można to znaleźć:platforms/android/src/com/[your app name]/[Your App Name.java
Ian Jamieson
Nie znalazłem żadnego pliku .java we wspomnianej ścieżce
Prak
0

To prawdopodobnie spełni Twoje potrzeby. Pozwala dostosować i dodać wszystkie odpowiednie ustawienia config.xml, obrazy i ekrany powitalne w przyjemnym, intuicyjnym interfejsie.

Zalecam pobranie pliku i instalację ręczną. Wygląda na to, że instalator powietrza oparty na sieci Web nie działa.

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

Phill Healey
źródło
0

Używając Cordova> = 3.6 i budując swoją aplikację za pomocą Cordova Command-Line Interface, można skonfigurować ekran powitalny z config.xmlpliku. To jest przykład dla Androida:

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

Istnieje również dedykowana wtyczka do programowego wyświetlania / ukrywania ekranu powitalnego.

Więcej informacji można znaleźć w dokumentacji Cordova .

lifeisfoo
źródło