De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Ricardo Takemura
Data de Publicação: 15 de junho de 2017
Primeiramente, é preciso dar permissão para a WebView executar o javascript,
adicionar um objeto e externalizar o método deste objeto com a anotação
JavascriptInterface:
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
...
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavascriptEnabled(true);
webView.addJavascriptInterface(new Object() {
//Método externalizado
@JavascriptInterface
public void showToast() {
Toast.makeText(MyActivity.this, "Hello world!", Toast.LENGTH_LONG).show();
}
//Nome do objeto no javascript
},"native");
...
}
}
E depois, usar no arquivo "js" ou "html", o objeto e método externalizado:
...
<script>
function ToastButton_onClick() {
native.showToast();
}
</script>
...
<button ontouchstart="ToastButton_onClick();">Toast</button>
...
Fácil, não? :P