Envío: de la página web al servidor
El mensaje que se envía desde una página web (a través de un IFrame incrustado en la página web) hasta el servidor recibe el nombre de mensaje incrustado. Se envía de la siguiente manera:
1.Se usa JavaScript para enviar el mensaje incrustado desde la página web hasta el IFrame. El mensaje incrustado se envía como objeto JSON que es el primer parámetro del método postMessage().
2.Cuando el mensaje incrustado alcanza el IFrame, la solución serializa el mensaje en una cadena JSON y envía dicha cadena al flujo de trabajo de la solución que está en MobileTogether Server. Esta fase tiene lugar de forma automática y no es necesario especificar ningún procesamiento.
3.En el flujo de trabajo el mensaje incrustado se puede detectar con el evento CuandoHayaMensajeIncrustado. Si se definió una acción para este evento, entonces se crea automáticamente la fuente de página JSON $MT_EMBEDDEDMESSAGE. Puede definir otras acciones si es necesario.
En este apartado explicamos el método postMessage() del paso nº1. Consulte los ejemplos de páginas web HTML que envían datos JSON y XML para ver el proceso en detalle. El paso nº2 tiene lugar de forma automática así que no es necesario explicarlo. El paso nº3 se describe detalladamente en los ejemplos JSON y XML. También puede consultar la descripción del evento CuandoHayaMensajeIncrustado para obtener más información.
Método postMessage
Es importante tener en cuenta estos aspectos clave:
•El mensaje incrustado se pasa como primer parámetro de postMessage().
•El mensaje incrustado se pasa como objeto JSON.
•Los datos del mensaje se serializan con el algoritmo structured clone. Esto quiere decir que el mensaje puede contener cualquier tipo de objetos de datos. La serialización tiene lugar de forma automática, pero debe tener en cuenta que no todos los tipos de datos pueden enviarse a MobileTogether Server
Por ejemplo, si los datos que se deben enviar están en formato JSON, el método postMessage() puede enviar la estructura de datos JSON sin modificar. De modo que, si se asigna un objeto JSON a una variable llamada misDatosJSON, esta estructura de datos se puede enviar con el método postMessage() de esta manera:
function sendMyMessage() {
document.querySelector('iframe').contentWindow.postMessage(misDatosJSON, '*');
}
En este ejemplo el IFrame recibirá la estructura de datos JSON. La solución que está en el IFrame enviará los datos al flujo de trabajo en forma de cadena JSON. En el flujo de trabajo los datos se pueden detectar con el evento de página CuandoHayaMensajeIncrustado y se pueden almacenar en la fuente de página JSON $MT_EMBEDDEDMESSAGE.
Consulte la documentación de la red de desarrolladores de Mozilla para ver más información sobre postMessage() y consulte nuestros ejemplos JSON y XML.