Antes de fazer sua primeira aplicação para o Android, é necessário seguir os procedimentos descritos nesse post. Além disso, para os testes você precisará criar um AVD, a descrição de como fazer isso, pode ser encontrada no conteúdo desse post.
Abra o Eclipse, File, New, Project. Escolha Android Project Using Studio for Android se você instalou o MOTODEV Studio ou Android Project caso contrário. Clique em Next.
Vou prosseguir utilizando o Wizard do MOTODEV Studio. Informe o nome do projeto, escolha um dos AVDs criados e configure as informações do projeto. Clique em Finish.
Abra o MainActivity.java ou o activity que você criou. Você deverá ter algo semelhante à esse:
package br.com.thiagovespa.android.helloandroid; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Uma Activity é o local onde o usuário interage (uma Activity por vez). O método onCreate será chamado quando a Activity iniciar, portanto é nele que você deve iniciar a parte da interface com o usuário. Na linha 9, está indicado que a tela utilizará o arquivo de layout main. Esse arquivo encontra-se na pasta res/layout.
Abra o arquivo. O editor gráfico de layout deverá aparecer. Caso você tenha problema com Missing theme, é porque o campo de tema está desabilitado (bug do SDK). Para habilitar, selecione outra plataforma na parte superior direita do editor e volte para a anterior novamente.
Altere as configurações: tema, visualização e tamanho de tela. Agora é só clicar e arrastar. Para nossa aplicação vamos alterar o texto padrão e exibir meu site. Para isso, abra o arquivo res/values/strings.xml e mude o valor da chave hello para Olá Android. Volte para o main.xml. Na palheta (Palette), selecione Composite e arraste o WebView para abaixo do texto. Clique com o botão direito sobre ele e selecione Edit ID. Digite siteWebView.
Selecione o fundo da tela e clique nas duas setinhas da barra (Toggle Fill Width e Toggle Fill Height) de edição do Graphical Layout. Clique no texto escolha o ícone Change Gravity e mude para Center Horizontally. Selecione o WebView e clique nas duas setinhas da barra (Toggle Fill Width e Toggle Fill Height). Caso você tenha alguma dificuldade, copie e cole o seguinte código no seu main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_height="wrap_content" android:text="@string/hello" android:layout_gravity="center_horizontal" android:layout_width="wrap_content"/> <WebView android:layout_width="match_parent" android:id="@+id/siteWebView" android:layout_gravity="fill" android:layout_height="match_parent"></WebView> </LinearLayout>
No Activity, coloque o seguinte código:
package br.com.thiagovespa.android.helloandroid; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.webkit.WebView; public class MainActivity extends Activity { /** Called when the activity is first created. */ private WebView meuSiteWV; private static final String TAG_NAME = MainActivity.class.getName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d(TAG_NAME, "Recuperando componentes..."); this.meuSiteWV = (WebView) findViewById(R.id.siteWebView); Log.d(TAG_NAME, "Carregando web-site..."); meuSiteWV.getSettings().setJavaScriptEnabled(true); meuSiteWV.loadUrl("http://www.thiagovespa.com.br"); Log.d(TAG_NAME, "Acabou!"); } }
Na linha 15 recuperamos o WebView do layout, na linha 17 habilitamos o javascript no WebView. O principal é na linha 18, onde carregamos o website. Não há tratamento de erros ainda, mas já dá pra ter uma idéia de como criar uma aplicação para Android. Estamos também utilizando o LogCat para visualizar no console o que a aplicação está fazendo, conforme descrito nesse post.
Como estamos acessando a internet, é necessário configurar o aplicativo para que tenha permissão para isso. Abra o arquivo AndroidManifest.xml, clique em Permissions, Add..., Uses Permission, pressione OK e em name coloque: android.permission.INTERNET. O seu AndroidManifest.xml deve ficar parecido com o seguinte:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.thiagovespa.android.helloandroid" android:versionCode="1" android:versionName="1.0"> <uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:minSdkVersion="11" /> <application android:icon="@drawable/icon" android:label="@string/app_name" android:permission="android.permission.INTERNET"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Clique com o botão direito na Activity, Run As, Android Application using Studio for Android e selecione o emulador. Aguarde carregar o emulador e veja a aplicação em funcionamento
Para executar no dispositivo, que é bem mais rápido que no emulador, vocẽ deve realizar os procedimentos descritos nesse post e habilitar a ddepuração USB, acessando Configuração, Aplicativos, Desenvolvimento, Depuração USB. Plugue o dispositivo com o cabo USB e ele deverá aparecer automaticamente na View Device Management do Eclipse. Clique com o botão direito na Activity, Run As, Run Configurations..., selecione o Device e clique em Run.
Agora é só brincar 😀
Ola tudo bem, quanto vc me cobra para criar um apk para mim que abra um endereço pela webwiew sem opção de zoom e um botão sair quando clicar em menu
Respondi por e-mail
Thiago, não recebi nenhum email, qual o seu contato email, telefone para eu entrar em contato com vc?
Velhinho,
Perdoe-me, mas não ficou claro o objetivo do post, pelo menos o título não está condizente.
O que vc pretende? Criar uma aplicação no Android? Fazer com que um site seja uma aplicação do Android?
Abraços.
O objetivo é criar uma aplicação Android que abre um site e esse site pode ser sua aplicação.. por isso o nome: Seu site como aplicação Android.
Thiago, fiz essa aplicação e rodou direitinho porem estou com uma dúvida.
Sempre que rodo a aplicação ele aparece o layout antes de me direcionar para o site, isso está correto?
Que layout?
O layout da aplicação que foi feito no main.xml
Comigo acontece a mesma coisa Paulo, estou tentando fazer abrir direto sem passar pela view criada no main.xml se vc ja conseguiu e puder me ajudar agradeço.
Como você tá criando a WebView?
Olá Thiago antes gostaria de dar os parabéns pelas dicas do site.
Vamos lá o código do arquivo main.xml esta quase igual ao seu a unica diferença é que eu tirei o TextView, mesmo com ele antes de abrir o navegador ele passa pela view mesmo que seja rápido ele passa.
Boa noite, eu to tendo um problema quanto a visualização, aparece a mensagem "Web Page Not Avaliable". Será possível ser a permissão, pois se declaro uses-permission o erro continua, agora se crio além do uses um android:permission junto assim como o seu, a aplicação da erro inesperado e fecha. Poderia me ajudar.
Thiago refiz a aplicação e rodou bacana.
Só um detalhe quando o site é aberto e eu tento navegar, o navegador é aberto e o site não continua na aplicação, isso está correto?
Existe alguma maneira de navegar totalmente na aplicação?
Obrigado.
Quanto voce cobra para fazer um pra mim ?
Vc quer que seu site fique como aplicação web?
Não... eu só mostrei como fazer isso 🙂
amigo, eu fiz o procedimento, abriu tudo, porém não funciona as funções de script (java etc) da página que ele abre.
Há como concertar isso?
Para habilitar o javascript, digite o seguinte código:
this.meuSiteWV.getSettings().setJavaScriptEnabled(true);
logo após a linha
this.meuSiteWV = (WebView) findViewById(R.id.siteWebView);
Quando faço um redirecionamento para outra url com https, o app não cerrega essa url. Já passou por isso?
Provavelmente o certificado do site não é confiável:
Veja informações Issue 2388: SSL for untrusted hosts cannot be activated in WebViewClient
Você pode tentar o seguinte código:
meuSiteWV.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
});
Funcionou, obrigado!
Tem um site que faz isso na net http://www.meusiteapp.com.br/
Tem, mas é pago e não ensina como faz 🙂
Eu fiz tudo isso, mas qd rodo a aplicação ele abre o navegador para abrir o link, como corrigir isso?
Qual versão do android? Qual modelo do aparelho?
Valeu mesmo pela dica.
Meu aplicativo ficou da forma que eu queria.
Obrigado
boa noite, quando abre o site ele carrega em um navegador instalado. Estou usando Galaxy S3. Obrigado.
Consegue testar no emulador para ver se é um problema com o código?
realmente, no emulador abre certinho, porém no celular pedi para abrir em um navegador.
Consegue testar em outro celular para garantir que é específico do aparelho?
Oi fiz como dito porem em qualquer ação que chame outra página esta abrindo no navegador, sabe me dizer o porque?
cara eu estava tentando utilizar o modelo de navigation drawer activity, mas quando tento implementar os seus codigos eu não consigo porque na classe principal ele extends fragments... como poderia implementar neste caso!?
Faça sem fragments. Tem exemplo aí?
Bom e gostei
Boa tarde, Thiago.
Assim que puder me envia seu email para tratarmos de negocios.
Obrigada
Você pode utilizar o formulário de contato
Olá !!!
Estou tentando fazer o passo a passo.. .porém o eclipse que eu baixei e o sdk acho que foi o errado.
Se possível mandar o link exato do sdk e do eclipse com a versão correta.
ola , segui o passo a passo da app , mas quand inicia o app em meu celular ele pede para abrir o navegador ,,, testado no lg l4 android 4.2
e lg leon android 5 ,,,, pode ajudar ??????
Me mande o código fonte para meu email amigo por favor
Fiz o seu passo a passo, porém sempre que carrego uma pagina, ela acaba abrindo no navegador!
Boa noite, caso eu esteja com a internet desconectada me retorna o seguinte erro: "pagina da web não disponível" e mostra para o usuário o link do site. Como faço para que o usuário não veja o link do site ou fosse direcionado para alguma outra pagina caso a internet esteja fora?
Você teria que fazer uma rotina que verifique antes a conexão com o site e abre ou feche o webview para mostrar ou redirecionar para outra página.
meu amigo, consegui fazer e ta tudo rodando direitinho, só que estou tentando acessar um sistema em javascript, consigo logar, etc.. porém quando tento acessar um formulário ele diz que não pode ser acessado de fora, tem alguma coisa pra fazer? uma vez que nao tenho acesso ao codigo
Tem como me enviar um print?
Olá! Quanto voce cobra para fazer um pra mim?
Entra em contato por e-mail ou pelo formulário de contato
Qual o valor?