(Web ページに埋め込まれた IFrame を使用して) Web ページからサーバーへ送信されるメッセージは「埋め込まれたメッセージ」と呼ばれます: 次の段階で送信されます:
1.Web ページから IFrame へ埋め込まれたメッセージを送信するために JavaScript が使用されます。埋め込まれたメッセージは、postMessage() メソッドの最初のパラメーターである JSON オブジェクトとして送信されます。
2.埋め込まれたメッセージが IFrame に到達すると、ソリューションはメッセージを JSON 文字列にシリアル化し、 MobileTogether Server 上のワークフローのソリューションにこの文字列を送信します。このステップは自動的に実行され、プロセスを指定する必要はありません。
3.ワークフロー内では、埋め込まれたメッセージは 埋め込まれたメッセージ イベントによりピックアップすることができます。アクションがこのイベントのために指定されていると、 $MT_EMBEDDEDMESSAGE JSON ページソースは自動的に作成されます。必要に応じて追加アクションを定義することができます。
このセクションではステップ 1 の postMessage() メソッドについて説明されています。JSON と XML データをプロセス全体のための詳細をポストしている HTML Web ページ サンプルを参照してください。ステップ 2 は自動的に実行され、説明を必要としません。ステップ 3 は JSON と XML サンプル内で詳しく説明されています。詳細に関しては、 埋め込まれたメッセージ イベントを参照してください。
次の主要な点について注意してください:
•埋め込まれたメッセージは postMessage() の最初のパラメーター としてパスされます。
•埋め込まれたメッセージは JSON オブジェクトとしてパスされます。
•メッセージ内のデータは、構成されたクローンアルゴリズムを使用してシリアル化されます。これは、メッセージがデータオブジェクトの範囲を含むことができることを意味します。シリアル化は自動的に行われます。しかしながら、全てのデータ型が MobileTogether Server に送信されるとは限りません。
例えば、JSON フォーマットでデータが送信される場合、postMessage() メソッドは変更すること無しに JSON データ構造を送信することができます。JSON オブジェクトが myJSONData という名前の変数に割り当てられると、このデータ構造は postMessage() メソッドを使用して以下のように送信することができます:
function sendMyMessage() {
document.querySelector('iframe').contentWindow.postMessage(myJSONData, '*');
}
このサンプルでは、 JSON データ構造が IFrame により受け取られます。IFrame 内のソリューションは、データをワークフローに JSON 文字列として送信します。ワークフロー内では、 データ 埋め込まれたメッセージ ページイベントによりピックアップされることができ、 $MT_EMBEDDEDMESSAGE JSON ページソース内に保管されます。
postMessage() に関する詳細は、Mozilla Developer Network ドキュメント を参照してください。JSON と XML サンプルも参照してください。