La acción Devolver mensaje incrustado envía una cadena (JSON serializada) al IFrame que cargó la solución actual. La cadena se envía en forma de evento message y la recibe la página HTML en la que está incrustada la solución, desde el IFrame, usando el método addEventListener() de JavaScript para escuchar eventos de tipo message.
La acción toma como entrada una expresión XPath que debe dar como resultado una cadena (JSON serializada). Se aceptará cualquier cadena, pero la página HTML destinataria solamente podrá usar cadenas serializadas como JSON (porque JSON es el formato de intercambio de datos que suele utilizarse para la comunicación entre servidores web). Por tanto, se pueden usar dos expresiones XPath distintas para especificar la cadena del mensaje:
•$MT_EMBEDDEDMESSAGE, que es la estructura de fuente de página que contiene los datos JSON que se deben procesar y transmitir. Recuerde que el elemento raíz de esta estructura siempre se llama json. Si se devuelve toda la estructura $MT_EMBEDDEDMESSAGE (como en el ejemplo de la imagen anterior), entonces la cadena JSON serializada tendrá como propiedad de nivel superior la propiedad json. La otra opción es definir el mensaje como fragmento de la fuente de página $MT_EMBEDDEDMESSAGE (p. ej. $MT_EMBEDDEDMESSAGE/json). En este caso la cadena JSON serializada del mensaje será el contenido del nodo json de la fuente de página.
•Cualquier nodo que dé como resultado una estructura de datos JSON o una cadena que sea una estructura de datos JSON. A continuación se muestra un ejemplo de cadena que es una estructura de datos JSON: '{ "books": { "author": "Mary Shelley", "title": "Frankenstein" }}'. En esta cadena JSON serializada, la propiedad books es la estructura que contiene los datos.
Información relacionada: Escucha: de la solución a la página web
MobileTogether cuenta con distintas funciones de extensión XPath creadas específicamente para usarlas en los diseños de MobileTogether. Algunas de ellas son especialmente útiles para ciertas acciones en concreto. Por ejemplo, mt-available-languages() devuelve los idiomas en que está disponible la solución y se podría usar, por ejemplo, con la acción Cuadro de mensaje. Si alguna función es especialmente relevante para una acción, aparece a continuación. Para ver una lista completa de funciones de extensión y sus descripciones consulte Funciones de extensión de MobileTogether.