DevCorner: WebView e metodi Java

Giuseppe Tripodi
Giuseppe Tripodi Tech Master
DevCorner: WebView e metodi Java

Per la disperazione dei puristi Java (e qui in redazione ne conosciamo qualcuno), il mondo delle webapp sta crescendo a velocità incredibile. La diretta conseguenza  di questa tendenza è che oggi con HTML, CSS e Javascript è possibile realizzare progetti anche discretamente complessi che possono funzionare sul browser di qualsiasi dispositivo. Il risvolto della medaglia è che sono sempre di più gli sviluppatori che si trovano a lavorare su applicazioni "ibride", composte in egual misura da webview e codice nativo.
Sebbene in questi casi possa avere senso appoggiarsi a piattaforme esterne come Apache Cordova (molto conosciuto anche grazie alla distribuzione PhoneGap), non sempre è necessario aggiungere questo livello di complessità: per questo motivo nel DevCorner di oggi vi spieghiamo come far comunicare una webview con codice nativo di Android e viceversa.

Per prima cosa costruiamo la nostra interfaccia: posizioniamo nella parte alta del layout un campo di testo (in cui digitare del testo da inviare a Javascript) e un bottone per eseguire l'azione.

Subito sotto una webview, che andremo a riempire con un file HTML caricato negli assets, che presenta un titolo, un paragrafo (da rimpiazzare con la stringa presente nell'EditTex) e due tasti, per mostrare rispettivamente un Toast e una Dialog.

L'XML del Layout dovrebbe quindi assomigliare a qualcosa del genere:


Mentre il nostro HTML (con Javascript incluso!) sarà simile a quanto segue:






AndroidWorld.it

DevCorner Example

Rimpiazzami!




function openAndroidDialog() { AndroidFunction.openAndroidDialog(); }

function callFromActivity(msg){ document.getElementById("testP").innerHTML = msg; }