phonegap - tela inicial para aplicativo Android

84

Alguém poderia me informar como posso adicionar uma tela inicial ao meu aplicativo Android baseado em HTML5 Phonegap. Eu só quero que ele seja exibido por 5 segundos no carregamento. Além disso - alguém pode aconselhar quais dimensões a tela inicial deve ter.

Dançarino
fonte
2
Apenas um conselho amigável, sob nenhuma circunstância é uma boa ideia colocar uma tela inicial em um aplicativo móvel. Isso vai deixar seus usuários super irritados.
Kurtis Nusbaum
37
Sinto muito, Kurtis, não tenho certeza do que você está defendendo. Existem muitos aplicativos móveis muito populares que mostram uma tela inicial enquanto carregam, sem incomodar os usuários. O iOS ainda tem uma imagem causada por Default.png especificamente para essa finalidade.
Devgeeks
6
@Devgeeks Concordo com Kurtis Nusbaum no caso em que você está mostrando uma tela inicial. Se o seu aplicativo demorar para inicializar, uma tela inicial com um indicador de atividade provavelmente será melhor do que nada, o que seria o provável motivo dos aplicativos populares de que você está falando. Caso contrário, há um número igual (ou até maior) de aplicativos móveis populares que não mostram a tela inicial. Basicamente, leve o usuário ao aplicativo o mais rápido possível. Uma tela inicial de 5 segundos é uma má ideia, pois frustrará os usuários a longo prazo.
Kinjal Dixit,
1
Por favor ... não faça isso! A tela de respingo não é uma boa ideia :) É verdade, que alguns aplicativos populares tem, mas isso não significa que é uma boa ideia;)
Štěpán Víteček
1
Acho que as telas iniciais são uma questão de gosto / design. Claro que a maioria das pessoas de UX aconselhará não usá-lo, mas eu discordo deles; uma tela inicial de 1 segundo não causará nenhum dano; em vez disso, adicionará uma "personalidade" e definirá um "tema" para o seu aplicativo, destacando-se entre os milhares de aplicativos "bootstrapish". No meu dispositivo, mais de 70% dos aplicativos usados ​​diariamente têm telas
iniciais

Respostas:

176

Para se ter uma tela em um aplicativo PhoneGap Android você precisa colocar o seu splash.pngarquivo em res/drawable-ldpi, res/drawable-mdpi, res/drawable-hdpi, res/drawable-xhdpi. Onde esses diretórios representam pontos por polegada baixos, médios, altos e extragrandes. Você precisará redimensionar seu splash.png (o nome do arquivo é importante aqui) para cada diretório ou o Android irá expandi-lo para você.

Os tamanhos de cada imagem devem ser:

  • xlarge (xhdpi): pelo menos 960 x 720
  • grande (hdpi): pelo menos 640 x 480
  • médio (mdpi): pelo menos 470 x 320
  • pequeno (ldpi): pelo menos 426 x 320

Então, em sua classe Java principal, aquela que estende o DroidGap, você precisará adicionar uma linha e modificar outra. Primeiro adicione:

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

esta linha deve aparecer abaixo, super.onCreatemas antes super.loadUrl. Em seguida, você precisará modificar seu método loadUrl para pausar por 5 segundos antes de carregar a página principal. Seria assim:

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

Isso deve bastar para você.

Recentemente, fiz algumas atualizações em como o SplashScreen funciona no PhoneGap Android. O aplicativo principal agora é carregado enquanto a tela inicial está sendo exibida. Esta é uma grande melhoria em relação à chamada de tela inicial de bloqueio anterior. Leia mais sobre as mudanças no meu blog .

Simon MacDonald
fonte
1
Oi SImon i Acabei de obter um erro informando 'o aplicativo parou inesperadamente ao implementar o acima?
Dançarina de
2
Parece haver um problema ao usar o parâmetro de tempo limite no PhoneGap 1.2. Veja também stackoverflow.com/questions/8100219/…
Paul Beusterien
1
Se eu remover o tempo limite de 5 segundos, o aplicativo compila e exibe rapidamente durante o carregamento - então parece que uma combinação dos itens acima com uma correção de tempo limite funcionaria muito bem ... gritos pela sua ajuda
Dançarino
6
Exigir que o usuário espere 5 segundos é um conselho terrível.
grahamparks de
1
@BallisticPugh Você deseja usar uma imagem de 9 patch para que possa controlar o que é alongado.
Simon MacDonald
3

Em meu aplicativo Phonegap, versão Android, o depurador Eclipse dá acessos de raiva se você definir a tela inicial ou até mesmo a caixa de diálogo de 'carregamento' antes de chamar loadUrl.

Ambos funcionarão no aplicativo real instalado em um dispositivo, mas interromperão a depuração. Então, eu os coloquei atrás do loadUrl, onde eles não podem causar danos e ainda aparecem bem antes do próprio aplicativo.

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

Eu também enfrento esse problema no phonegap android .. mas agora eu tenho solução.

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.

Edite o arquivo java principal na pasta src do diretório do projeto.

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

fonte
1
Normalmente pode ser encontrado:platforms/android/src/com/[your app name]/[Your App Name.java
Ian Jamieson
Não encontrei nenhum arquivo .java no caminho mencionado
Prak
0

Isso provavelmente atenderá às suas necessidades. Ele permite que você personalize e adicione todas as configurações, imagens e telas de abertura relevantes do config.xml em uma interface intuitiva agradável.

Eu recomendo baixar o arquivo e instalar manualmente. O instalador aéreo baseado na web não parece funcionar.

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

Phill Healey
fonte
0

Usando Cordova> = 3.6 e construindo seu aplicativo com a Interface de Linha de Comando Cordova, é possível configurar a tela inicial a partir do config.xmlarquivo. Este é um exemplo para 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" />

Também existe um plugin dedicado para mostrar / ocultar a tela inicial de forma programática.

Consulte a documentação do Cordova para obter mais informações.

lifeisfoo
fonte