terça-feira, 18 de abril de 2017

Dicas de Programação: Como executar uma função nativa no Android via Javascript (WebView)?

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

Até mais!

Nenhum comentário: