este es un ejemplo de como lanzar un evento customizado a nivel aplicación desde un webView llevando parámetros desde este y tener comunicación con tu app nativa.
comencemos este ejemplo hecho en alloy.
despues de crear un proyecto en blanco tenemos la primer ventana, que contiene el webView.
recordemos que la unica forma de comunicarte desde un WebView son solo a traves de FireEvents a nivel aplicación ( Ti.App.fireEvent(); )
<alloy>
<window class="container">
<webview id="webView"></webview>
</window>
</alloy>
y este es su tss
'.container':{
backgroundColor:'#000',
}
'#webView':{
url:'index.html',
}
en este index.html se realiza un campo y un botón en html que serán los encargados de forma grafica de recibir la informacion que se llevara desde el webView hasta la App.
este es el script dentro del html que se va a comunicar en la App.
<script>
var input = document.getElementById('inputWeb');
var boton = document.getElementById('botonWeb');
boton.addEventListener('click', function(e){
Titanium.App.fireEvent('lanzadorWeb',{'valorInput' : input.value});
});
</script>
este punto es importante por que manda lo recibido desde el html.
boton.addEventListener('click', function(e){
Titanium.App.fireEvent('lanzadorWeb',{'valorInput' : input.value});
});
y en el controlador que se comunicara sera el que reciba la instrucción de poder crear una ventana y poder recibir los parametros
Titanium.App.addEventListener('lanzadorWeb', function(e){
var ventana2 = Alloy.createController('ventana2', {'valorArg2' : e.valorInput}).getView();
ventana2.open();
});
si quieres ver el ejemplo completo aquí dejo el código
https://gist.github.com/addieljuarez/1ee4dd051f4726da48c8