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.


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

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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Ricardo Takemura