Communication entre la page web et le serveur
Une des raisons pour intégrer une solution à une page web est l'échange de données entre la page web et la solution intégrée de manière à ce que la solution traite les données d'entrée par le biais de MobileTogether Server et retourne le résultat à la page web. Un scénario typique serait le suivant :
1.Un utilisateur remplit des données dans un formulaire de page web HTML
2.Ces données sont communiquées à la solution (qui est actuellement chargée dans un Iframe de la page web)
3.La solution envoie les données sur le flux de travail de la solution sur MobileTogether Server où il est traité de la manière habituelle
4.Les résultats sont renvoyés au IFrame, où ils peuvent être (i) affichés en tant que partie de la solution, et/ou (ii) renvoyés à la page web pour un affichage ou un traitement supplémentaire
Note : | Dans la description de cette fonction, nous effectuons une différence entre le terme solution (l'affichage dans l'IFrame) et le flux de travail (le design qui est déployé sur le serveur). |
Le processus complet se répartit en cinq étapes : page web–solution–flux de travail–solution–page web. Les mécanismes qui sont utilisés pour envoyer des données entre la page web et le flux de travail sont décrits dans les sous-sections de cette section :
•Publication : de la page web au serveur
•Écouter : du serveur à la page web
Mécanismes de transfert de données
Les données sont transférées entre la page web et le serveur en deux étapes : page web–solution et solution–flux de travail. Les deux étapes utilisent les mécanismes suivants, respectivement :
Page web–solution
La communication entre la page web et la solution est effectuée avec JavaScript :
•La méthode Window.postMessage() est utilisée pour envoyer des données depuis la page web vers l'IFrame intégré. (Le message est envoyé automatiquement de la solution vers le flux de travail.)
•La méthode Window.addEventListener() est utilisée dans la page web pour écouter un événement de message envoyé par le flux de travail vers l'IFrame. Lorsqu'un message est reçu par l'IFrame, il est transféré à la page web, où une fonction JavaScript peut être utilisée pour traiter le message et l'afficher dans la page web
Les deux méthodes listées ci-dessus sont des spécifications W3C. Pour plus d'informations, voir les descriptions sous le Mozilla Developer Network : PostMessage et AddEventListener. Aussi, puisque l'écouteur d'événement écoute l'apparition d'un événement de message, voir MessageEvent.
Solution–flux de travail
La communication entre la solution et le flux de travail se base sur le fait que les données sont accédées dans le flux de travail depuis une source de page JSON (nommée $MT_EMBEDDEDMESSAGE). Étant donné que la source de page JSON doit être créée depuis une structure JSON, la solution effectue les étapes suivantes : (i) elle sérialise automatiquement le message qui est reçu dans l'IFrame en un string JSON, et (ii) il envoie automatiquement le string JSON sérialisé vers le flux de travail (où il peut être créé en tant que la source de page JSON $MT_EMBEDDEDMESSAGE).
Si la communication se produit dans la direction inverse (du flux de travail vers la solution), elle est envoyée en tant qu'un string JSON (généralement en sérialisant la source de page JSON $MT_EMBEDDEDMESSAGE).