Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Problema com Webview

Sim, mas vc viu o codigo? Testou dessa forma?

@JavascriptInterface
public void seuMetodoDeInteface() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//Aqui vc exibe dialogs, faz update de nas UI, etc
}
});
}


O "runOnUiThread" é que permitirá q seu html chame um metodo de interface, entendeu? Eu tive um problema parecido, eu queria que quando terminasse o carregamento de uma pagina no meu webview, o progress sumisse. So q dava erro sempre e a solução foi usar o runOnUiThread. 


Em 25 de julho de 2013 17:34, Marcos Reis | .Mobi <marcos.reis@pontomobi.com.br> escreveu:
Acho que o problema não ficou claro,

Eu faço exatamente isso.. tenho uma interface e injeto ela no html ... a chamada do método esta funcionando normalmente.

O problema esta na hora de exibir a dialog, não, não dá pra usar progress, funciona mais ou menos assim, eu tenho uma imagem e uma div ... (seria o conteudo da webview que esta no viewpager) ..

No evento onclick da div eu coloco "window.jsBridge.linkClick();", onde jsBridge é a minha interface que foi injetada no momento da criação do webview.

Quando o usuário tocar sobre a div, deverá ser aberta uma janela de dialog e será exibido um conteudo que pode ser um video ou uma imagem.. 

Para evitar o problema de codec do Android com relação aos videos eu utilizo uma webview para exibi-lo, o src do video poderá ser tanto do youtube quando do vimeo. O problema por algum motivo ocorre no momento que ele esta configurando a segunda webview (que estara dentro do dialog).

Não sei se vou falar bobagem, mas acho que esta havendo alguma concorrencia entre as Threads das webviews e pode estar gerando o erro.

Oq vcs acham?

Obrigado pela ajuda.




-- 
Cordialmente,
Marcos Reis
Analista de Sistemas / Android

Pontomobi
Any screen,
Anywhere™

São Paulo | Rio | BH | Recife | London




On 25/07/2013, at 16:18, Andre Souza <deh.osouza@gmail.com> wrote:

Ja sei qual o problema.. vc está tentando chamar um metodo de interface la pelo html/javascript. Faça dessa forma, cria dentro da classe que cria o webview:

class JsObject {
@JavascriptInterface
public void seuMetodoDeInteface() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//Aqui vc exibe dialogs, faz update de nas UI, etc
}
});
}
}

depois que criar seu webview, vc faz:

seuWebView = (WebView) findViewById(R...
seuWebView.addJavascriptInterface(new JsObject(), "injectedObject"); 

esse nome "injectedObject" é que vai ser utilizado no lado do do html/javascript pra chamar os metodos da sua classe. Então la no seu html vc usa:

injectedObject.seuMetodoDeInteface() ; //irá executar seu metodo


Isso funciona comigo, tenta ai e ve se dá certo =]


Em 25 de julho de 2013 15:23, Marcos Reis | .Mobi <marcos.reis@pontomobi.com.br> escreveu:
Boa Tarde Galera,

Estou trabalhando em um app que esta me rendendo uma certa dor de cabeça, estou passando por um problema com a utilização de webviews e gostaria da ajuda de vcs.

O cenário é o seguinte:

1 - Tenho um viewpager que exibe webviews, onde processo um html e mostra uma imagem embarcada no app.
2 - Junto com o html crio algumas "divs" e associo a elas uma chamada a um metodo em minha classe Java atraves da interface de JavaScript.
3 - Quando o evento é disparado exibo uma Dialog customizada que irá apresentar outra webview, esta por sua vez poderá exibir diversos conteudos, como por exemplo, imagem, videos, etc .. 

O problema é o seguinte, quando faço a chamada a minha Dialog o seguinte warning é gerado no Logcat[1]  e o conteúdo não aparece, e o erro continua estourando mesmo depois que eu fecho o app.

Alguem ai teria alguma ideia do que pode estar acontecendo ???

Segue tambem um print do código da configuração da webview que esta no viewpager[2] e da webview que esta no dialog[3].

Desde já agradeço pela ajuda.



-- 
Cordialmente,
Marcos Reis
Analista de Sistemas / Android

Pontomobi
Any screen,
Anywhere™

São Paulo | Rio | BH | Recife | London






--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
André Luiz de Oliveira Souza
Engenheiro da Computação
Pós-graduando em Desenvolvimento de Software com ênfase em Java Corporativo

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
André Luiz de Oliveira Souza
Engenheiro da Computação
Pós-graduando em Desenvolvimento de Software com ênfase em Java Corporativo

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário