リッスン: ソリューションから Web ページへ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  埋め込まれた Web ページソリューション > Web ページとサーバー間の通信 >

リッスン: ソリューションから Web ページへ

MobileTogether Server から Web ページへメッセージを次の段階で送信することができます:

 

1.ワークフローの 埋め込まれたメッセージをバック アクションは、メッセージをシリアル化された JSON 文字列のフォーマットで IFrame に送信します。 アクション内で送信するメッセージを指定することができます。
2.IFrame にメッセージが達すると、イベントリスナーがメッセージ イベントをピックアップし、メッセージを処理する関数を呼び出し、 Web ページに転送されます。メッセージ イベントのためにイベントリスナーを以下のとおり登録することができます: window.addEventListener('message', ProcessReturnMsg)
3.上のサンプル内の関数 (ProcessReturnMsg ) は、シリアル化が解除された JSON オブジェクトの書式のメッセージ イベントをパラメーターとして取ります。 通常通りオブジェクトにアクセスすることができ、 HTML ページ内で使用することができます。 例:

function ProcessReturnMsg(m) {

msgVar = m.data.json.books

...

}

 

詳細に関しては、 Mozilla Developer Network Web サイトで AddEventListenerMessageEvent の詳細を参照してください。

 

サンプル

下のスクリーンショットに示されるように、デザインには構造を持つ $MT_EMBEDDEDMESSAGE ページソースが含まれています。このページソースのルート要素は(JSON ページソースであるため) json という名前が与えられます。

MTDEWSExJSONPgSrc

ページソースの全てのコンテンツ (またはその一部) を IFrame 内のソリューションに message イベントとして送信することができます。これを行うには、例えば、デザイン内に、 クリック時 イベントのためにが 埋め込まれたメッセージをバックする アクション設定されているボタンがある場合などです (下のスクリーンショットを参照)。下の XPath 式では、 $MT_EMBEDDEDMESSAGE ノードのコンテンツがメッセージイベントとして送信されます。 すなわち、 json ノードとのコンテンツが送信されます。

MTActionEmbeddedMsgBack

HTML ページ内では、イベント リスナーを登録することができます: window.addEventListener('message', ProcessReturnMsg)

 

オブジェクトにアクセスし、 HTML ページ内で使用することができます。 例:

function ProcessReturnMsg(m) {

  msgVar = m.data.json.books

  /* 'm' is the HTML message event that is passed to ProcessReturnMsg */

  /* 'data' belongs to the event and holds the message returned by the MT action */

  /* 'json' is the JSON object that is contained in the message */

  ...

    }

 

上のサンプルでは、books のコンテンツは msgVar に保存されます。

 


(C) 2019 Altova GmbH