Chamar a função Java do JavaScript para o Android WebView
Eu quero fazer uma chamada síncrona para algum código Java no meu aplicativo Android.
Eu estou usando esta solução:https://stackoverflow.com/a/3338656
Meu código Java:
final class MyWebChromeClient extends WebChromeClient {
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d("LogTag", message);
result.confirm();
return true;
}
}
Meu código JavaScript:
<html>
<script>
function java_request(){
alert('test');
}
</script>
<body>
<h2>Welcome</h2>
<div id="area"></div>
<form>
<input type="button" value="java_call" onclick="java_request()">
</form>
</body>
</html>
Quando eu toco nojava_call
botão, o botão vai para o estado pressionado. eu consigo ver'test'
no log do console. Tudo é normal até aqui.
O problema é que o botão nunca volta ao seu estado normal. Ele permanece no estado pressionado. Talvez a execução do JavaScript esteja quebrada ou algo assim?
Por que o botão nunca retorna ao seu estado normal?