WebView no Android, Entendendo e Utilizando

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /WebView no Android, Entendendo e Utilizando

WebView no Android, Entendendo e Utilizando

Vinícius Thiengo30/12/2013
(30109) (116) (30) (1)
Go-ahead
"Na falta de um foco externo, a mente se volta para dentro de si mesma e cria problemas para resolver, mesmo que os problemas são indefinidos ou sem importância. Se você encontrar um foco, uma meta ambiciosa que parece impossível e força-o a crescer, essas dúvidas desaparecem."
Tim Ferriss
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
Black Week
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas+ 124
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas934
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas598
Acessar Livro
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa! Blz?

Nesse vídeo (continuando a série de vídeos sobre componentes visuais no Android) mostro o WebView. Componente muito utilizado para quebrar nosso galho no devesenvolvimento Android do dia a dia. Mostro com abrir um conteúdo da Web no WebView e como construir nosso próprio conteúdo HTML no WebView. Note que há a necessidade de colocar a permissão de acesso a Internet no AndroidManifest.xml.

Note a importância de somente utiilizar o WebView quando nós não tivermos uma opção conhecida via XML android. Fique ligado também em desabilitar o suporte ao zoom para não ter tratamento inesperado em sua WebView (caso você também não for utilizar o zoom, claro). Mas enfim, acho que os exemplos do vídeo dão uma amostra legal do que é possível com o WebView, logo vou evitar mais delongas e deixar você assistir ao vídeo.

Só para ressaltar o uso do WebView, o Facebook faz muito o uso do WebView quando um usuário quer acessar seus dados do Facebook dentro de alguma outra APP e esse não tem instalado em seu dispositivo o APP do Facebook, logo a página de autenticação que é aberta é aberta em um WebView. Vale ressaltar também que há a possibilidade de enviar dados da atividade para o WebView e vice-e-versa.

O link para download do projeto se encontra logo abaixo no post.

Página do WebView no site de desenvolvedores do Android

Segue imagem esquema do componente visual WebView:

WebView no Android, Entendendo e Utilizando

Compartilhe, comente! Vlw.

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

ScrollView e HorizontalScrollView no Android, Entendendo e UtilizandoScrollView e HorizontalScrollView no Android, Entendendo e UtilizandoAndroid
GridLayout no Android, Entendendo e UtilizandoGridLayout no Android, Entendendo e UtilizandoAndroid
Colocando Uma Imagem da Web no ImageView do AndroidColocando Uma Imagem da Web no ImageView do AndroidAndroid
GridView no Android, Entendendo e UtilizandoGridView no Android, Entendendo e UtilizandoAndroid

Compartilhar

Comentários Facebook (40)

Comentários Blog (76)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
Fernanda Alves da Silva (1) (0)
30/10/2017
Thiengo,

Utilizei WebView para leitura de pdf, funcionou, no entanto, para arquivos grandes a seguinte mensagem foi apresentada; NENHUMA VISUALIZAÇÃO DISPONÍVEL". Tem alguma sugestão?
Responder
Vinícius Thiengo (0) (0)
30/10/2017
Fernanda, tudo bem?

Respondi ao seu primeiro comentário na área do Facebook Comments deste artigo, acesse ele. Lhe dou algumas possíveis soluções.

Abraço.
Responder
20/09/2017
Bom dia Thiengo. Parabéns pelos vídeos. Me ajudaram muito. Ainda sou iniciante em Android, consegui a maior parte do meu projeto com suas dicas, mas ainda tenho alguns problemas. Por ex.:
1- ao utilizar o endereço "whatsapp://...", Não funciona no webview, porém no navegador funciona normal. Tentei vários tipos do shouldOverrideUrlLoading, criando intent, mas sem sucesso. Caso não seja possível dessa maneira, tentei também gerar um PDF com essas informações para compartilhar, mesma situação.. navegador funciona, webview não.

2- existe a possibilidade de o app verificar o MySQL do php, e quando identificar alguma linha a mais do que da última verificação, notificar o usuário.?
3- a TAG input type=file do php, na mesma situação, funciona no navegador, mas não na webview.

Teria algumas dicas quanto a estas situações?

Obrigado e parabéns!
Responder
Vinícius Thiengo (0) (0)
21/09/2017
Diego, tudo bem?

Sobre a primeira dúvida. Você a princípio fez o caminho certo, capturou um novo carregamento e tentou abrir com o Intent. O método shouldOverrideUrlLoading() chegou a ser invocado, certo?

Pergunto isso, pois há mais de uma versão deste método. De qualquer forma, tente utilizando uma versão mais robusta do WebView: https://android-arsenal.com/tag/230?sort=rating

No link acima tem várias APIs somente sobre versões WebView melhores que a nativa.

Sobre a segunda dúvida. Sim, é possível, mas o recomendado neste caso é que você trabalhe com notificações push de forma ativa no servidor, ou seja, quando um novo conteúdo for adicionado ao banco, logo em seguida os usuários necessários são notificados.

Hoje para notificação no Android utilizando um servidor de aplicativo (com MySQL e PHP, por exemplo) utilizamos o FCM. Mais sobre ele no link a seguir: https://www.thiengo.com.br/fcm-android-dominio-do-problema-implementacao-e-testes-com-servidor-de-aplicativo-parte-1

Sobre a terceira dúvida. Tem uma maneira de conseguir isso, digo, o funcionamento do imputa file no WebView, não é trivial mas funciona sem problemas. Segue solução: https://www.thiengo.com.br/input-file-no-webview-android

Esse problema é antigo no Android, digo, o WebView limitado até mesmo com tags HTML triviais. A solução do link acima funciona para qualquer modelo de aparelho.

Abraço.
Responder
Roberta (1) (0)
22/07/2017
Oi Thiengo, tudo bem?

Excelente tutorial, era esse recurso que estava procurando, tenho um site responsivo e vai ser muito útil aqui pra gente. Obrigado por fazer esse video tutorial.

Thiengo, tenho uma dúvida, baseado nesse projeto, eu conseguiria inserir essa webview dentro de um iFrame? Estamos pensando em criar um iFrame, que mostrará o nome do nosso site na parte de cima, e o usuário navegaria normalmente em nosso.

Qual a melhor opção para se criar uma webview dentro de um iFrame?

Parabens pelo tutorial. Seu site está em meus favoritos.
Responder
Vinícius Thiengo (0) (0)
22/07/2017
Roberta, tudo bem aqui.

É possível colocar um <iframe> dentro de um WebView, digo, o <iframe> sendo também parte do html carregado no WebView, o inverso, não.

Isso, pois o WebView é um componente visual no Android, já o <iframe> é somente no HTML.

Como quer permitir que o usuário carregue o conteúdo de seu site dentro do aplicativo, em um WebView, e assim possa navegar por ele, recomendo que remova a barra de topo do aplicativo, algo padrão em app Android com Material Designa, e então trabalhe a versão mobile do site para ter essa parte de topo com o nome do site e até mesmo o menu.

Roberta, para um trabalho melhor gerenciado com o WebView, recomendo o estudo também do artigo do link a seguir: http://www.thiengo.com.br/facilitando-o-desenvolvimento-de-apps-android-com-a-biblioteca-androidutilcode

Nele utilizo a linguagem Kotlin, mas você pode prosseguir com o Java sem problemas. De qualquer forma, estudando o projeto você verá que é até mesmo possível aproveita-lo para seu site.

Abraço.
Responder
28/06/2017
Olá, obrigado pelo vídeo, criei um app com o webview, porém estou com alguns problemas: 1- Links que não sejam http ou https, não carregam, tipo tel:, geo:. 2 - O campo do tipo File não funciona, tento fazer o upload mas não abre nada. 3 - O login através do Google, não funciona dentro do WebView. Poderia me ajudar?
Responder
Vinícius Thiengo (0) (0)
28/06/2017
Tássio, tudo bem?

Já respondido nos comentários acima, do Facebook. Abraço.
Responder
Renato Costa (1) (0)
27/12/2016
Olá Thiengo, Blz? Gostaria de saber como implemento esse carregamento de Progressbar, em um MAPA, no Android Studio?
vlw!
Responder
Vinícius Thiengo (1) (0)
28/12/2016
Renato, tudo bem?

Para implementar o ProgressBar com o mapa no WebView, veja se utilizando os métodos onPageStarted() e onPageFinished() você consegue essa funcionalidade em sua APP.

Abaixo o link do artigo / vídeo que tenho falando sobre esses métodos: http://www.thiengo.com.br/monitoramento-de-inicio-e-fim-de-carregamento-de-pagina-no-webview

Caso seja o ProgressBar junto a implementação do Google Maps via Java API, nesse caso você terá de ter um método listener para quando o mapa ser carregado por completo poder utilizar a variável que contém a instância dele.

Para esse caso do Java API recomendo que ainda no onCreate() da Activity (ou onCreateView() do Fragment) que você ative o ProgressBar (setVisibility( View.VISIBLE )) e assim que o listener do Mapa sinalizar que o carregamento dele finalizou, desligue o ProgressBar (setVisibility( View.GONE )).

Faça ambos, o mapa e o PrgressBar dividirem o mesmo layout Root, o FrameLayout: http://www.thiengo.com.br/entendendo-e-utilizando-framelayout-no-android

Veja se consegue implementar essa lógica, qualquer coisa volte aqui. Abraço.
Responder
17/09/2016
Boa noite, quando estou sem internet o aplicativo mostra a url do site qual a qual o aplicativo esta conectado. Como faço para que caso esteja sem internet ele seja direcionado ou mostre uma outra mensagem em vez da url?
Responder
Vinícius Thiengo (0) (0)
17/09/2016
Luiz, blz?
Utilize os listeners do WebClientView como feito aqui: http://stackoverflow.com/a/17961536/2578331

Esse é o caminho, outros seguidores que queriam essa solução seguiram com o WebClientView. Abraço
Responder
Luiz Crepaldi (1) (0)
08/09/2016
Thiego, boa noite eu estou fazendo um projeto e preciso de alguma função dentro da webview para trazer a tela do usuário apenas uma parte o site.  Por exemplo na pagina ha três divs e eu quero mostra ao usuário apenas a segunda div sera que voce tem alguma função ou ferramenta para fazer isto ?
Responder
Vinícius Thiengo (1) (0)
10/09/2016
Luiz, blz?
Vc tem controle do código do site? Caso sim, vc poderá via CSS, utilizando media-query, ocultar as outras divs.

Caso o site não seja de seu controle, veja se a maneira a seguir funciona para ti: http://stackoverflow.com/a/5010864/2578331

Assim é pegar os ids, classes ou posições dos divs que não devem ser apresentados na página e oculta-los via js. Veja se funciona contigo essa versão. Abraço
Responder
fomulo (1) (0)
08/07/2016
Como faço pra abrir uma url no activity sem alterar o java? Existe algum load url que posso inserir no xml apenas?
Responder
Vinícius Thiengo (0) (0)
09/07/2016
Fala Fomulo(?), blz?
A princípio somente via Java API vc consegue carregar a url. Está tendo problemas com a versão de carregamento via Java API?
Responder
Neto Monteiro (1) (0)
25/06/2016
Thiengo, boa noite. Estou com um problema,  o Webview está deixando um vazamento de memória muito grande. Consigo corrigir colocando o onDestroy ou o finish. Sempre que uso esses dois métodos o aplicativo trava. O problema é que até com os dois métodos citados acima, eles só funcionam quando eu uso o botão físico do aparelho. Quando fecho a app pela aba de aplicativos recentes ele não realiza os dois métodos. Como resolvo esse problema?
Grato pela atenção, parabéns pelo ótimo trabalho!
Responder
Vinícius Thiengo (0) (0)
26/06/2016
Fala Neto, blz?
Vazamento de memória com um WebView, o conteúdo do WebView é externo? Diminua a quantidade de conteúdo carregado por página, divida em mais páginas, ainda mais se houver muita mídia (vídeo, áudio e imagens). Veja se dividindo o conteúdo se normaliza.

Dê uma olhada nessa discussão (http://stackoverflow.com/questions/3130654/memory-leak-in-webview) e na resposta certa (http://stackoverflow.com/a/3132515/2578331). Abraço
Responder
26/06/2016
Obrigado pela atenção.

O conteúdo é externo, não há como eu dividir em mais páginas.. Já fiz vários testes, parece que se fechar o aplicativo pela aba de apps recentes o método onDestroy não executa.
Há algum outro modo de limpar os dados gerados pelo WebView ao fechar o app?
Responder
Vinícius Thiengo (0) (0)
26/06/2016
Neto, se não me engano não tem como, pois mesmo com o onDestroy() que aparentemente limpa a memória dos dados carregados pelo WebView, esses dados somente são removidos da memória quando o Garbage Collector passa nela e identifica objetos não mais referenciados.

A maneira que vejo é reduzindo conteúdo carregado pela página. Um possível teste é tentar abrir outras páginas no WebView somente para ter certeza de que é aquela página em específico que gera o problema de vazamento de memória.

Somente de curiosidade, vc poderia fornecer o url dessa página? Abraço
Responder
Catarina (1) (0)
08/06/2016
Queria saber como entrar no servidor por uma web view, Obrigada
Responder
Vinícius Thiengo (0) (0)
09/06/2016
Fala Catarina, blz?
A princípio somente se o servidor tiver um dashboard Web. Nesse caso vc utilizaria login e senha. O WebView é nada mais nada menos que um navegador mobile. Abraço
Responder
Carlos Augusto (1) (0)
25/05/2016
Thiengo, boa tarde. Parabéns. Muito bacana. Estava fazendo uma pesquisa na internet e me deparei com seu site. Está me ajudando e muito em um aplicativo que estou criando. Gostaria de tirar uma dúvida contigo, se possível. Como faço para colocar ou aparecer em uma activity um arquivo do tipo .pdf? Por exemplo, quando o usuário clicar em informativo no menu, o aplicativo abre uma tela com o arquivo extensão pdf. Como faço isso? Grato Carlos Augusto.
Responder
Vinícius Thiengo (0) (0)
27/05/2016
Fala Carlos, blz?
Vc terá que ter um Dialog no caso, recomendo que utilize o DialogFragment (http://www.thiengo.com.br/dialogfragment-no-android-entendendo-e-utilizando), pois ele tem o próprio ciclo de vida e então vc poderá deixar toda a complexidade de abrir um PDF somente nele.

Quanto ao PDF, veja qual das libraries nesse link (https://android-arsenal.com/search?q=pdf) abrem um PDF para leitura, dessa forma vc poderá abrir o PDF no layout do DialogFragment e ter exatamente o comportamento que mencionou no contato. Abraço
Responder
Edriano Santos (1) (0)
21/02/2016
Fala Vinicius blz, tentei fazer uma implementação com webView mas ao acessar uma página de músicas não consigo executar as musicas, sempre que aperto play a música toca 1 segundo e pausa.
Responder
Vinícius Thiengo (1) (0)
22/02/2016
Fala Edriano, blz?
WebView tem alguns problemas com flash (provavelmente o player que está utilizando é via flash).

Se possível tente rodar a música com tags de streaming html5. Dê uma olhada nessa discussão tb (http://stackoverflow.com/questions/15501377/how-to-play-the-live-streaming-url-in-webview-android-using-iframe). Abraço
Responder
19/02/2016
Boa noite Thiengo! Me ajuda meu camarada!

Estou tentando algo há mais de uma semana e não consigo: carregar links de páginas internas do meu site no WebView ao clicar na Push notification. A URL para o loadUrl está indo como parâmetro na Notification. Já testei getIntent(); getExtras(), e não consigo recuperar esta variável para o load da WebView.
Fiz  app com WebView carregando uma loja virtual responsiva que tenho.
Implantei o Push GCM para divulgar os produtos, que além da mensagem envia uma URL de páginas de detalhes  produtos da loja.
O PHP/JSON está enviando direitinho todas as variáveis. Testei enviando o bundle através do método sendNotification(extras.toString()); no onHandleIntent.Chega o título, msg, link, id's, etc.
Só não consigo fazer o WebView carregar esta variável URL. Não sei como pegá-la. Já tentei de tudo: getIntent(), getExtras(), getExtraString(), Bundle, etc... Só não consigo fazer o WebView abrir este link enviado na notificação.

Postei os arquivos da APP neste link:
https://stackoverflow.com/questions/35516219/i-cant-send-url-to-webview-by-onclick-in-the-notification-push-gcm-im-sendin />
Tu consegue me ajudar? Perdoe o código meio zoneado... Sou bem Noob! rsrs
Responder
Vinícius Thiengo (0) (0)
20/02/2016
Fala Marcinho, blz?
Tente configurando Intent na notification dessa forma:

Bundle b = new Bundle();
        b.putString("link", url);
        Intent notificationIntent = new Intent(theContext, MainActivity.class);
        notificationIntent.putExtras(b);

Veja se assim funciona. Lembrando que na MainActivity terá de acessar dessa maneira: getIntent().getExtras().getString("link"). Abraço
Responder
geymyson (1) (0)
10/11/2015
O meu pegou normal,mas só a primeira pagina as outras pede pra abrir no navegador pq?
Responder
Vinícius Thiengo (0) (0)
11/11/2015
Fala geymyson, blz?
Tente utilizando tb o trecho de código abaixo:

webView.loadUrl( webData.getUrl() );
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        view.loadUrl(url);
        return true;
    }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon){}
    @Override
    public void onPageFinished(WebView view, String url){}
});
Responder
28/09/2015
Ótima postagem, parabéns amigão..
Responder
06/09/2015
muito obrigado pelo video. tenho uma pergunta se puder responder ficarei muito grato.
estou de ideia a criar um app. terá no total 7 a 9 telas diferentes contando com a inicial

cadastrar/editar cadastro
solicitar/confirmar solicitação/ver solicitações
refazer solicitação

baseia se nisto... so texto e botoes.....

manjo muito de php e se este sistema fosse feito em um webview teria problemas? qual sua opniao/experiencia com este componente

se tratando do html e php destes formularios são muito simples e
fazendo com o webview agilizaria demais o processo do tempo de desenvolvimento.. praticamente 2 dias...
Responder
Vinícius Thiengo (0) (0)
08/09/2015
Fala Marco Túlio, blz?
Como é developer Web, recomendo que faça sim a primeiro versão com WebView e tecnologias Web. Essa APP (https://play.google.com/store/apps/details?id=br.mibec&hl=pt_BR) construi somente com WebView e ActionBar (hj seria Toolbar), na verdade ela é esse site com layout responsivo para a versão mobile, porém criei a APP para abrir a versão mobile. Pontos positivos: bem rápido e dá para ajustar o layout com características que não são tão triviais no mobile nativo. Pontos negativos: a APP perde mt em qualidade, pois não temos todas as features disponíveis como quando no dev nativo, por exemplo: um script que recebe push message e dispara uma notificação na status bar.

O tempo que vc pode gastar para se tornar um baita developer mobile / web com WebView tb pode ser bem menor do que com Java para se tornar um especialista em Android. Porém terá de focar mais em html e css, pois como o PHP é backend os scripts tendem a ser os mesmos que vc já utiliza em outros sistemas que tenham cadastro e cia. Minha dica é desenvolve em WebView já que em poucos dias consegue ter algo e então vai já estudando para implementar nativo se perceber que com  aversão nativa sua APP vai ficar mais responsiva e outros. Abraço
Responder
cleber (1) (0)
17/08/2015
Amigos fiz um webview porem no site tem videos e o mesmo não roda e fica somente na tela do print abaixo alguem poderia min ajudar obrigado.

http://oi58.tinypic.com/2lu5tnd.jpg
Responder
Vinícius Thiengo (0) (0)
17/08/2015
Fala Cleber, blz?
Passar vídeos pelo WebView não é uma boa, já vi software em que funcionava de vez em quando e de vez em quando não, isso sempre com as mesmas condições. Logo, se tem acesso ao path do vídeo no servidor, recomendo que utilize uma implementação nativa com TextureView (https://android-arsenal.com/search?q=textureview). Abraço
Responder
Henrique (1) (0)
12/05/2015
Boa noite Vinicius! Cara, fiz uma webview no meu app pra um site meu (HTML puro)  e até aí tudo ok! O problema é que esse site é atualizado de 5 em 5 minutos e após 5 min mesmo fechando o app e abrindo novamente o que é exibido é o site não atualizado... Como se estivesse carregando de um cache... Sabe como resolver esse problema? Queria q a cada vez q a activity fosse carregada a webview fosse atualizada...  Desde já, obrigado!
Responder
Vinícius Thiengo (0) (0)
13/05/2015
Fala Henrique, blz?
Na definição de seu WebView faça o mesmo que tem sido feito no script da pergunta desse link (http://stackoverflow.com/questions/7537701/prevent-android-webview-caching-data), essa é a forma de previnir o cache do WebView no device. Abraço
Responder
Henrique (1) (0)
13/05/2015
Fala Thiengo!
Cara, tentei essa sugestão mas continua não atualizando a webview quando abro a app novamente... Segue o q eu fiz:

myWebView2 = (WebView) findViewById(R.id.webView2);
        myWebView2.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(myWebView2, url);
                myWebView2.clearHistory();
                myWebView2.clearFormData();
                myWebView2.clearCache(true);
                myWebView2.getSettings().setAppCacheEnabled(false);
                myWebView2.getSettings().setAppCacheMaxSize(1);
                myWebView2.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
            }
        });
        this.deleteDatabase("webview.db");
        this.deleteDatabase("webviewCache.db");
        myWebView2.clearCache(true);
        myWebView2.reload();

        myWebView2.loadUrl("meusite.html");

        myWebView2.clearCache(true);
        myWebView2.reload();
        this.deleteDatabase("webview.db");
        this.deleteDatabase("webviewCache.db");
}

Alguma outra sugestão?

Desde já agradeço!
Responder
Vinícius Thiengo (0) (0)
14/05/2015
Henrique, tente a resposta certa desse link (http://stackoverflow.com/questions/2465432/android-webview-completely-clear-the-cache), esse camarada utilizou um script similar ao seu e teve problema de não remover a cache, depois utilizou o da resposta e passou. Abraço
Responder
Henrique (0) (0)
14/05/2015
Infelizmente não funcionou Thiengo... já não sei mais como resolver... A webview só atualiza se eu ficar uns 10 minutos sem abrir o app... fora isso sempre abre a última tela carregada...
Responder
Henrique (1) (0)
14/05/2015
Thiengo, tentei colocar um botão no meu html pra recarregar a página mas quando clico no botão dentro da webview, o app abre o brownser do celular... Sabe se tem como eu forçar ele abrir dentro da webview?
Responder
Vinícius Thiengo (0) (0)
15/05/2015
Henrique, utilize o código abaixo para evitar esse comportamento:

WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
wv.loadUrl(webData.getUrl());
wv.setWebViewClient(new WebViewClient(){
@Override
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        view.loadUrl(url);
        return true;
    }
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){}
@Override
public void onPageFinished(WebView view, String url){}
});
Responder
10/04/2015
quando uso ws.loadUrl(); o eclipse não reconhece como comando, obrigado, abraços
Responder
Vinícius Thiengo (0) (0)
10/04/2015
Fala Jorge, blz?
Como está a declaração da variavel "ws"? Está assim:

WebView ws = new WebView(this) ou (WebView) findViewById(R.id.idDeSeuWebView)?

Pode ser que esteja utilizando o WebSettings ws como WebView, veja se não é isso. Abraço
Responder
14/04/2015
Positivo, funcionando perfeitamente, obrigado e abraço.
Responder
08/04/2015
thiengo, queria saber como colocar uma webview personalizada, tipo seu APP , que pega apenas um post do site e não o site todo.
Responder
Vinícius Thiengo (0) (0)
09/04/2015
Fala Jonas, blz?
Na verdade a APP do Blog não trabalha com WebView, em meu servidor tem uma interface mobile onde somente pego os dados via JSON e então na APP é construído o conteúdo, pois o layout já está pronto. Se vc entrar no blog pelo browse mobile ai sim vc terá a interface mobile que construi para o Blog (no caso sem a APP nativa). A forma de customização é no CSS de sua página Web mesmo. Em meu caso trabalho com media queries (http://www.devmedia.com.br/utilizando-css-media-queries/27085) para identificar o tamanho da tela e então apresentar o conteúdo de maneira correta. Tem outras formas, o APP da Mibec (https://play.google.com/store/apps/details?id=br.mibec&hl=pt_BR) que construí na verdade é quase tudo WebView, no servidor Web identifico quando é um mobile abrindo o site e então carrego uma página Web especifica para mobile, nesse caso não tem a ver somente com o CSS, mas com o backend php tb para identificar se é mobile ou não. Abraço
Responder
29/03/2015
thiengo, esqueci mais estou trabalhando com uma webview, um navegador que estou desenvolvendo, porem não baixa nada, será que poderia fazer um navegador simples que baixe qualquer arquivo e postar o projeto?
ou um vídeo mesmo, por favor cara tenho um prazo para aprender, e não to conseguindo, vlw amigo se der...
Responder
Vinícius Thiengo (0) (0)
30/03/2015
Opa Jonas, blz?
Para mim não vai dar para fazer vídeos sobre o WebView mais, mas diga ai, vc não consegue nem mostrar a página Web no WebView mesmo seguindo os passos do vídeo a cima? Se não, o que está sendo apresentado no LogCat quando tenta carregar a página no WebView? Se sim, basta colocar o link do .zip do arquivo que mesmo no WebView será realizado o Download. Colocou a permissão de Internet? Abraço
Responder
28/03/2015
thiengo, suas video aulas ajudam muito, mais quero saber como posso implementar download na minha aplicação, vc me passou um link anteriormente, mais nao ajudou, pois no exemplo so baixava uma imagem especifica, com o link da mesma, quero que ao clicar em algum link de arquivos ele baixe o arquivo e salvar no dispositivo.

obrigado, e desculpe pelos erros de português...
Responder
Vinícius Thiengo (0) (0)
29/03/2015
Fala Jonas, blz? Bom, vc pode fazer como faço no APP do Blog, apenas coloco o link para acesso ao .zip que está no servidor Web, então coloco um listener de click em um TextView e aciono uma Intent especifico assim que acontece o click, logo o download se inicia, mas dessa maneira vc não consegue mostrar o progres do download ao usuário. O código do Google, vc pode alterar para o tipo de arquivo que quiser, não? Segue o código de download que utilizo:
tv = (TextView) view.findViewById(R.id.tv_download_link);
                tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(post.getDownload().trim()));
                        activity.startActivity(intent);
}
});
Responder
25/03/2015
Entendi muito obrigado, mais uma pergunta  você sabem algum fácil e prático que eu possa programar o aplicativo o criar os botões e colocar a condição que você me passou? Estou com dificuldade nunca programei para Android e preciso fazer um trabalho para faculdade
Responder
Vinícius Thiengo (0) (0)
26/03/2015
João, não conheço gratuito, mas pago se não me engano tem vários, tipo o Fabrica de Aplicativos (http://fabricadeaplicativos.com.br/?lang=en). Busque no GitHub tb, as vezes tem projetos parecidos prontos. Abraço
Responder
24/03/2015
Boa Noite Vinicius, olha tenho um problema e acho que pode me ajudar. vamos la

preciso desenvolver um aplicativo para Android, que quando eu clique em algum botão do meu aplicativo ele me redirecione para uma URL qualquer.

Obrigado, abraços
Responder
Vinícius Thiengo (0) (0)
25/03/2015
Fala João Gabriel, blz?
Vincule o evento de click nos botões que colocará na tela (onClickListener()), pode implementar o OnClickListener em sua MainActivity e então colocar ids para os botões, assim acesse os botões via findViewById() no método onCreate de sua Activity e vincule o listener de click a eles via setOnClickListener(this). No método onClick() faça a verificação por id via if ou switch e então pegue a url correta que deve ser aberta. Pode utilizar o vídeo acima para abrir a url dentro de um WebView interno em sua APP ou pode utilizar um Intent como o de baixo para abrir no browser mobile:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(URL_AQUI));
getActivity().startActivity(intent);

Abraço
Responder
Elias Martins (0) (0)
09/02/2015
Bom dia Vinícius, consegui fazer o webview na mesma tela "activity", só que não consigo carregar o progressbar você tem
alguma dica do que pode estar ocorrendo ?
Tentei de várias formas carrega-lo mas ele não aparece, se tiver, me da um help por favor, obrigado e abraços.
Responder
Vinícius Thiengo (0) (0)
10/02/2015
Fala Elias, blz?
Tentou colocar o ProgressBar dentro dos métodos onPageStarted() e onPageFinished() da implementação de um WebViewCliente como nesse vídeo (http://www.thiengo.com.br/monitoramento-de-inicio-e-fim-de-carregamento-de-pagina-no-webview). Coloque o WebVIew e o ProgressBar dentro de um FrameLayout, o ProgressBar no caso seria a ultima view, para ficar por cima, no onPageFinished() vc colocaria a visibilidade dele como View.GONE. Tenta ai se não tentou assim ainda. SE não for volte ae para acharmos outra solução. Abraço
Responder
Marcelo Pereira (0) (0)
07/02/2015
Estou perdido kk poderia me ajudar? estou começando agora e por isso achei seu vídeo muito bom, baixei o exemplo, mas não consigo abrir ele no eclipse. como faço? ja criei um projeto e depois joguei os seus arquivos dentro da pasta, mas não abre. poderia me dar essa dica? deve ser simples, mas como estou começando agora fica complicado. Obrigado
Responder
Vinícius Thiengo (0) (0)
08/02/2015
Fala Marcelo, blz?
Qual seria o problema que o Eclipse está apresentando? Está ao menos conseguindo abrir no Eclipse e os erros então aparecem? Já que está iniciando recomendo que comece com o AndroidStudio, tendo em mente que ele é agora a plataforma oficial de dev Android e provavelmente o Eclipse não terá mais suporte. Com o AndroidStudio vc tem a opção de importar um projeto que foi feito em Eclipse e então ele já adapta ao AndroidStudio. Abraço
Responder
Marcelo Pereira (1) (0)
08/02/2015
Obrigado por responder. realmente depois de importar aparece os erros. pelo que entendi esse fala sobre o caminho da class java.lang.Object.
erro:
DescriptionResourcePathLocationType
The project was not built since its build path is incomplete. Cannot find the class file for java.lang.Object. Fix the build path then try building this projectExemploWebViewUnknownJava Problem
Responder
Vinícius Thiengo (0) (0)
09/02/2015
Marcelo, como o WebView não precisa de nada de especial (libs externas, no caso), vc pode copiar o código dentro um novo projeto que criou, eu digo, somente o código java que mostro no vídeo. Assim mt provavelmente vai sem problemas. Abraço
Responder
Marcelo Pereira (0) (0)
09/02/2015
Vinicius, só mais uma pergunta e veja se pela sua experiencia irei conseguir fazer o que quero com webview.
Tenho um site e nele quero colocar um botão "baixar aplicativo", o usuario clicando nele, iria instalar um ícone como se fosse um app para abrir o site, consigo fazer isso com webview ?
Responder
Vinícius Thiengo (0) (0)
10/02/2015
Marcelo, que tem como instalar um atalho para um site n APP sei que tem como, pois já vi essa feature, porém não cheguei a implementar para poder lhe dizer se é assim por meio de botão de download e cia. Encontrei esse links (http://updates.html5rocks.com/2014/11/Support-for-installable-web-apps-with-webapp-manifest-in-chrome-38-for-Android http://www.2ality.com/2014/06/installable-web-apps.html), provavelmente vão lhe ajudar a implementar. Abraço
Responder
06/02/2015
Vinícius, queria saber se tem como  abrir a webview na mesma pagina, no caso criei um botão para chamar a página, ela abre perfeitamente do modo normal criando outra activity, mas eu preciso abrir na mesma activity que a chamou, teria como fazer isso, tiver me de um a ajuda por favor, obrigado abs.
Responder
Vinícius Thiengo (0) (0)
07/02/2015
Fala Elias, blz?
Tem como sim, na verdade a Activity e a WebView são entidades independentes, vc pode abrir a url na WebQue já está aberta com suaWebview .loadUrl("suaNovaUrl"); ou vc pode criar um novo WebView, preenche-lo como no vídeo aqui e adiciona-lo ao layout via layoutRoot.addView(seuWebView). Abraço
Responder
29/07/2014
Thiengo muito bacana o post.
Tenho um probleminha talvez vc possa ajudar.
Tenho um WebView com um iframe do Youtube, porém o video não carrega ao apertar play.

Desde já agradeço.
Responder
Vinícius Thiengo (1) (0)
29/07/2014
Fala Marcel, blz?
Velho, tive esse problema tb, senão me engano o vídeo realmente não carrega dessa forma, na verdade em alguns dispositivos carrega, mas em outros não... utilize a lib do YouTube no Android que passa sem problema algum... eu fiz dois vídeos sobre ela, segue os links:

http://www.thiengo.com.br/api-do-youtube-no-app-android-iniciando

http://www.thiengo.com.br/upload-de-video-e-youtubeintents-com-youtube-api-no-android

Abraço
Responder
31/07/2014
Vlw Thiengo, vou ver os videos.

Obrigado , e parabéns pelos posts , são os melhores !!!!!
Responder
24/06/2014
Olá Thiengo, blz?! Seguinte, URL'S como a do seu site, a aplicação roda tranquilamente com WebView, porém, com URL's como o do site facebook.com e etc, o meu emulador redireciona para o Browser, você sabe o  pq?!
Responder
Vinícius Thiengo (0) (0)
25/06/2014
Fala Matheus, blz?
Então, na época em que fiz esse vídeo não sabia dessa problemática, mas a maneira que encontrei para contornar isso foi instanciando uma WebClient e sobrescrevendo o método shouldOverrideUrlLoading(), segue um exemplo:

webvView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){}
@Override
public void onPageFinished(WebView view, String url){}
});

Ve se funciona ai e depois informe, abraço
Responder
03/06/2014
Queria ver com você no webview tento carregar uma url que tem um arquivo flash com extensão swf e não mostra na app. Poderia me ajudar?
Responder
Vinícius Thiengo (0) (0)
03/06/2014
Fala Tarcisio, blz?
Vc tem acesso de root aos arquivos HTML (que contem o flash) e ao flash? Para fazermos um teste rodando diretamente do folder asset com o WebView, sem carregamento remoto de página. Encontrei esse link no stackoverflow, acho q pode ser util: http://stackoverflow.com/questions/6081743/webview-doesnt-play-swf-file-on-android

O camarada está tendo exatamente o mesmo problema e ele adicionou esse atributo (android:hardwareAccelerated = "true") no manifest (acredito que na Activity) e tudo funcionou. abraço
Responder
03/06/2014
Oh Vinicus, valeu.

Mas, fiz tudo igual e pesquisando outros sites e nada.
Responder
Vinícius Thiengo (0) (0)
03/06/2014
Hum... achei uma outra solução no stackoverflow, o camarada tinha tentado todas as outras soluções anteriores e nada, mas essa parece q deu certo, segue: http://stackoverflow.com/questions/20802288/flash-is-not-loading-in-web-view-in-android
Responder
daviola.menezes (0) (0)
02/02/2015
Eae conseguiu?
Responder
Vinícius Thiengo (0) (0)
03/02/2015
Fala Daviola, blz?
Provavelmente não, via WebView não garanto que o flash vai rodar, pois esse é o problema do YouTube tb quando carregado via WebView as vezes funciona as vezes não. Abraço
Responder