Comunicación entre la página web y el servidor
Una buena razón para incrustar una solución en una página web sería intercambiar datos entre la página web y la solución incrustada para que esta última procese los datos de entrada en MobileTogether Server y devuelva el resultado a la página web. Por ejemplo:
1.Un usuario rellena datos en un formulario de una página web HTML.
2.Estos datos se envían a la solución (que está cargada en un IFrame de la página web).
3.La solución envía los datos al flujo de trabajo de la solución que está en MobileTogether Server, donde se procesan de la forma habitual.
4.Los resultados se devuelven al IFrame, donde se pueden (i) presentar como parte de la solución o (ii) pasar a la página web para presentarse al usuario o para seguir procesándolos.
Nota: | en la descripción de esta característica distinguimos entre el término solución (la presentación en el IFrame) y el término flujo de trabajo (el diseño que está implementado en el servidor). |
El viaje de ida y vuelta tiene varias fases: página web - solución - flujo de trabajo - solución - página web. Los mecanismos utilizados para enviar datos entre la página web y el flujo de trabajo se describen en los apartados de esta sección:
•Envío: de la página web al servidor
•Escucha: del servidor a la página web
Mecanismos de transferencia de datos
La transferencia de datos entre página web y servidor se lleva a cabo en dos fases: página web - solución y solución - flujo de trabajo. Estos son los mecanismos que usa cada fase:
Página web - solución
La comunicación entre la página web y la solución se realiza con JavaScript:
•El método Window.postMessage() sirve para enviar datos desde la página web hasta el IFrame incrustado. El mensaje se pasa automáticamente de la solución al flujo de trabajo.
•El método Window.addEventListener() se usa dentro de la página web para escuchar un evento de mensaje que envía el flujo de trabajo al IFrame. Cuando el IFrame recibe un mensaje, éste se envía a la página web, donde una función JavaScript se encarga de procesarlo y de presentarlo en la página web.
Ambos métodos son especificaciones del W3C. Para más información consulte las páginas PostMessage y AddEventListener de la red de desarrolladores de Mozilla. También puede consultar la página MessageEvent.
Flujo de trabajo - solución
La comunicación entre la solución y el flujo de trabajo está basada en el hecho de que a los datos del flujo de trabajo se accede desde una fuente de página JSON (llamada $MT_EMBEDDEDMESSAGE). Como la fuente de página JSON se debe crear a partir de una estructura JSON, la solución hace esto: (i) serializa automáticamente en una cadena JSON el mensaje que se recibe en el IFrame y (ii) después envía automáticamente la cadena JSON serializada al flujo de trabajo, donde se puede usar para crear la fuente de página $MT_EMBEDDEDMESSAGE.
Cuando la comunicación ocurre en sentido contrario (desde el flujo de trabajo hasta la solución), se envía como cadena JSON (serializando la fuente de página JSON $MT_EMBEDDEDMESSAGE).