BlocosIA Wiki Editor

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

  1. Añade la extensión App (Kodular / App Inventor) y programa el proyecto.
  2. Exporta en HTML (plan Pro) y pon el archivo en los Medios de la app (o en una dirección https).
  3. 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') o blocosiaApp('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.