Mostrando postagens com marcador android application project. Mostrar todas as postagens
Mostrando postagens com marcador android application project. Mostrar todas as postagens

sexta-feira, 26 de setembro de 2014

Android - Passando Dados de Webview Para Activity e de Activity Para Webview

Como chamar métodos da sua aplicação Android através de formulários HTML carregados em uma Webview? Eu consigo passar dados capturados da web para minha aplicação Android nativa? Consigo mostrar na web dados enviados da minha Activity?

Sem mais enrolação, vamos ao passo-a-passo!

1) Crie um simples projeto Android com o nome de PocWebView (POC significa Prova de Conceito ou Prove Of Concepts) e nomeie sua Activity principal como MainActivity. Se você tem dificuldades em dar este primeiro passo siga nosso tutorial de como criar um projeto Android aqui.

2) Crie uma simples página HTML com o código abaixo e a salve com o nome "simplesHTML.html" na pasta "res/assets" do seu projeto. Caso a pasta não exista, crie-a.

OBS.: Este arquivo poderia estar contido em um servidor web qualquer, isso não mudaria o código deste tutorial significativamente.


 <html>  
    <head> </head>  
    <body>   
      <div id="resposta" ></div>   
      <div>   
         <form id="form1">   
           <table width="100%" class="mytable">   
              <tr>   
                <td>Nome</td>   
              </tr>   
              <tr>   
                <td><input type="text" id="txt_nome"></td>   
              </tr>   
              <tr>   
                <td>E-mail</td>   
              </tr>   
              <tr>   
                <td><input type="text" id="txt_email"></td>   
              </tr>   
           </table>   
         </form>   
      </div>   
      <button onClick="chamarActivity()">Chamar Activity</button>   
    </body>  
 </html>  

Este é um formulário simples que pede para o usuário digitar um nome e um email.

Verificamos que nosso botão "Chamar Activity" faz a chamada a uma função Javascript chamada "chamarActivity()" a qual não definimos ainda. Também foi definida uma "div" na página com o id "resposta" que utilizaremos para montar a página de resposta com os dados que serão enviados pela Activity.

3) Agora vamos deixar um pouco a página HTML de lado e vamos às configurações em nossa aplicação Android. Modifique seu arquivo "activity_main.xml" (ou correspondente) na sua aplicação Android adicionando um componente "Webview" desta forma:


4) Crie um atributo do tipo "android.webkit.Webview" em sua "MainActivity.java" (ou correspondente) e associe-o ao componente Webview de seu arquivo de layout:


5) Criaremos uma classe privada chamada "MyWebViewClient" que herda de "android.webkit.WebviewClient" apenas para evitarmos que as ações dentro de nossa webview abram o browser de nosso aparelho. Para isso sobrescreva o método "shouldOverrideUrlLoading" e configure esta classe como sendo o "WebViewClient" de sua Webview. Ficará desta forma:


6) Ativaremos o recurso de "JavaScript" em nossa Webview e vamos configurar nossa Activity permitindo acesso a ela através de "Javascript". Isso é feito através do método "addJavascriptInterface" passando como parâmetro o Objeto que será acessado (em nosso caso será nossa própria Activity) e o prefixo que será utilizado na web para encontrar tal Objeto. Iremos também carregar nossa página HTML em nossa Webview. Segue trecho do código responsável por este feito:



7) Neste passo iremos criar o método de nossa Activity que será chamado pelo botão criado em nosso formulário na página HTML. O mesmo método, como resposta, chamará um método declarado em Javascript na nossa página que criará um formulário de resposta com os dados recebidos pela Activity. Segue método comentado para melhor entendimento:


8) Agora acrescente no "head" de sua página html o seguinte javascript:

 <script type="text/javascript">  
    function metodoWebView(data){  
       var obj = eval ("(" + data + ")");   
       var html = "<p><b>Data received</b><br><br>"+   
       "Nome: <span>"+obj.param_nome+"</span><br>"+   
       "E-mail: <span >"+obj.param_email+"</span></p>";  
       var div_resposta=document.getElementById("resposta");   
       div_resposta.innerHTML = html;   
    }  
    function chamarActivity(){  
       var nome = document.getElementById("txt_nome").value;   
       var email = document.getElementById("txt_email").value;   
       var dataObj = new Object();   
       dataObj.param_nome = nome;  
       dataObj.param_email = email;   
       var jsonObj = JSON.stringify(dataObj);   
       pocwebview.metodoActivity(jsonObj);   
    }  
 </script>  

É isso aí!! Se tudo ocorreu bem e você seguiu todo o passo-a-passo, certamente você terá em mãos uma aplicação que conversa com uma Webview!! ;)

Faça download do código fonte desta aplicação AQUI.


quarta-feira, 24 de setembro de 2014

Android - Criando Novo Projeto

Como criar um novo projeto Android? Tarefa simples, porém pra quem está iniciando com a tecnologia, está iniciando com o Eclipse ADT, ou mesmo se tem apenas alguma dúvida sobre as configurações existentes na criação de um novo projeto Android, este post será bastante útil!

Sem mais enrolação, vamos ao passo-a-passo!

1) Faça o download do Eclipse ADT que será a IDE de desenvolvimento que utilizaremos na maioria de nossos tutoriais Android. Ao inicia-lo ele irá pedir um "Workspace" que será o local em seu computador onde ficaram armazenados seus projetos. Iniciando a IDE, clique "File" na barra de ferramentas, posicione em "new" e em seguida selecione "Android Application Project":




Na "wisard" que se segue iremos às configurações iniciais de nosso projeto e digamos que a mais importante. Iremos determinar intervalo de versão de Android que nosso aplicativo irá aceitar, nome, pacote, tema, etc.



2) É importante saber o que cada item desses significa e como configura-los para atender a demanda e padrão do mercado. O primeiro e segundo nome talvez sejam os mais intuitivos. 
No primeiro campo será o nome do seu aplicativo sem restrição nenhuma de caracteres especiais (*&¨%$). 
No segundo campo será o nome do seu projeto, que por padrão é o nome do seu aplicativo, porém sem espaços em branco e sem caracteres especiais. 
No terceiro, apesar de o nome também ser intuitivo, pouca gente sabe qual o padrão do mercado. O padrão para seu "Package Name" (nome do pacote da sua aplicação) é "com.nomedaempresa.nomedoaplicativo". Isso mesmo, se você já trabalhou com projetos Java Web já está familiarizado com isso. Muitas pessoas começam a desenvolver aplicativos e não têm ainda uma empresa ou sequer pensam em abrir; nesse caso eu sugiro colocar seu sobrenome ;) . 
Minimun Required SDK (como o nome já diz) será a mínima versão de SDK Android que seu aplicativo irá aceitar. Atente-se para duas dicas: Primeira, quanto menor a versão aceita pelo seu aplicativo maiores adaptações deverão ser feitas para garantir um código compatível e para conseguir utilizar recursos mais sofisticados (até mesmo visual como é o caso a ActionBar que é aquela famosa barrinha de botões); Segunda, apenas 12% dos aparelhos Android distribuídos mundialmente utilizam a versão 2.x do Android, a versão 3.x foi praticamente extinta do mercado (foi a versão que não deu certo, tipo o windows vista da microsoft rsrsrs) e toda a grande maioria utiliza a versão 4.x como é possível conferir aqui no próprio site do Android . Sendo assim, utilizando a SDK de número 14 você já consegue utilizar quase todos os novos recursos ao mesmo tempo que engloba aproximadamente 87% dos aparelhos distribuídos mundialmente. Show de bola! Não?
Target SDK será a versão mais alta de SDK em que seu aplicativo será capaz de ser executado (deixa a última como padrão).
Compile With será a versão com que sua aplicação será compilada (como a ultima versão do SDK que é a Android L ainda está em fase beta, evite dores de cabeça e mantenha a versão 20 rsrs).
Theme será o tema da sua aplicação. Praticamente é uma configuração dispensável pois raramente aplicativos mantém esses temas predefinidos, os desenvolvedores sempre deixam seus aplicativos com sua cara. Ficará assim:



3) Clique em "Next". Na próxima tela iremos deixar as configurações padrões, porém é bom que saibamos o que cada opção significa. 
A primeira opção irá criar um ícone principal para nossa aplicação. Ícone que será mostrado no celular ao instalar a aplicação assim como será mostrado como "home" na nossa "ActionBar" (citada anteriormente).
A segunda irá criar a primeira "telinha" do nosso aplicativo (é bom para exemplo na criação das demais).
A terceira opção marca nossa aplicação como biblioteca para apenas ser usada dentro de outras aplicações. Não utilizaremos essa opção.
A quarta cria seu projeto dentro do seu "Workspace" (que selecionamos na inicialização da IDE Eclipse ADT ).
A quinta e última opção é no caso de termos um conjunto de aplicações onde mostramos em nosso Project Explorer parte de cada uma e neste caso é se quisermos adicionar essa nossa nova aplicação à este conjunto. Não a utilizaremos.

Ficará assim:




4) Clique em "Next" e na próxima tela iremos deixar nosso ícone ser criado conforme o sugerido (depois podemos alterá-lo facilmente para um ícone qualquer que tenhamos criado para nosso aplicativo).



4) Na próxima tela escolheremos o tipo de "telinha" que será criada como nossa primeira tela do aplicativo. Tenha em mente que uma aplicação Android divide uma "tela" em duas partes: layout.xml e TelaActivity.java, onde na primeira você "desenha" o layout da sua tela e na segunda você manipula e altera em tempo de execução cada componente que você "desenhou" em seu layout. Sendo assim, daqui em diante quando falarmos de "Activity" estaremos falando de "tela" e cada "Activity.java" tem seu arquivo "layout.xml" correspondente. Deixe a seleção em "Blank Activity" para que uma Activity simples seja criada.



5) Depois de explicarmos a relação Activity - layout fica fácil saber o que será feita nessa próxima tela. Aqui escolheremos o nome de nossa Activity e arquivo de layout que será criado. Por convenção, toda Activity termina com o nome Activity e todo arquivo de layout tem o prefixo "layout_" acrescentando o nome da Activity correspondente. Para incentivar seguir esta convenção a "wisard" do Eclipse ADT já nos induz a segui-la. Para aprendizado, nomearemos nossa Activity principal para PrincipalActivity. Ficará assim:



Clique em "Finish" e seu primeiro projeto estará criado e pronto para ser executado!





É isso aí pessoal! Se tudo ocorreu bem e você seguiu o "Passo-a-Passo", você acaba de criar sua primeira aplicação Android, e não é só isso, agora você sabe o que faz e o que significa cada opção que é disponibilizada na "wisard" Eclipse ADT de criação de projetos Android! Até a próxima!  ;)