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; }