私は頻繁window.postMessage
に「メッセージ」イベント リスナーを使用して、親 Web ページとその子IFRAME
要素内の Web ページの間でドメイン間で通信します。IFRAME
UIWebView とその子要素のWeb ページでこれが可能かどうかを知りたいです。
質問する
3624 次
1 に答える
4
はい、これは確かに可能です。数日前に自分のアプリでこれをテストしたところ、成功しました。
通信したいWebページで、「メッセージ」イベントリスナーをウィンドウに追加しただけです
Web ページで UIWebView メッセージをリッスンする
window.addEventListener("message", onmessage, false);
window.onmessage = function(e){
// e.data contains message
// e.origin will equal NULL as theres no domain in UIWebView
}
UIWebView は、埋め込まれた iFrame オブジェクトのウィンドウを取得して、postMessage を呼び出すだけです。
iFrameObject.contentWindow.postMessage("message", http://webpageDomain...);
逆に、UIWebView の html 実装は、上記のコードのようにメッセージをリッスンする必要があります。今回は e.origin がウェブページのドメインになります。
UIWebView には targetDomain がないため、Web ページは * を使用して次を呼び出す必要があります。
parent.postMessage("message", *);
于 2012-08-03T21:10:54.240 に答える