Conversar con apps de Kodular y App Inventor
Exporta en HTML, ábrelo en un WebViewer e intercambia eventos, pedidos y datos con la app.
Preparar
- Añade la extensión App (Kodular / App Inventor) y programa el proyecto.
- Exporta en HTML (plan Pro) y pon el archivo en los Medios de la app (o en una dirección https).
- En la app, usa un WebViewer con la página:
file:///android_asset/juego.html(App Inventor) o la ruta de medios en Kodular. Puedes pasar parámetros:juego.html?fase=2.
Proyecto → app
- enviar el texto … a la app y enviar el evento … con los datos … disparan el evento WebViewer.WebViewStringChange. Lee la propiedad
value(texto o JSON). - Formatos JSON:
{"tipo":"evento","nome":"puntos","dados":10},{"tipo":"acao","acao":"toast","valor":"Hola"}y{"tipo":"pedido","id":3,"nome":"tinydb_ler","dados":{"tag":"record"}}. - En la app, convierte el texto en diccionario (JsonTextDecode / diccionario desde JSON) y elige qué hacer por tipo y acao:
toast,vibrar,abrir_link,compartilhar,falar,copiar,notificacao,tela_ligada,orientacao,abrir_tela,fechar,tinydb_salvar.
App → proyecto
- WebViewer.RunJavaScript (App Inventor) o Evaluate JavaScript (Kodular):
blocosiaApp('volver')oblocosiaApp('moneda', 5)disparan cuando la app envíe el evento …. - Para responder un pedido:
blocosiaApp.responder(3, 'valor')(usa el mismo id). - O cambia la propiedad WebViewString: el texto simple es un mensaje;
{"nome":"x","dados":1}es un evento;{"resposta":3,"valor":…}responde un pedido.
Consejos
- Botón Atrás del móvil: en Screen.BackPressed, llama
blocosiaApp('volver')y trátalo en el proyecto. - En el editor no hay app: usa simular que la app envía el evento … para probar.
- ¿estoy dentro de una app? ayuda a ocultar botones que solo sirven en el móvil.