#WinJS : how to post a message from an iFrame to your #Win8 app

, , 2 Comments

Sometimes, you display information in an iframe and you need to communicate it back to your Windows 8 app. You may think like I did “just navigate to a specific page with the arguments in the URL and make the Win8 app read the location of the iframe”…. Cool but all you’ll get is an “access denied”.

To have this kind of scenario, you have to do some more code on the server page …


The solution is maybe well known by the web developpers : use the postMessage function.

In the page displayed by the Windows8 App in an iframe, just call the postMessage on the window to send a message to the app. Don’t forget to set the origin to “*”:
[javascript]window.parent.postMessage("this is a messsage very important","*");[/javascript]

In the windows 8 app, you can register to this kind of message with a very classic code. Also,you can check the origin field to be sure that the message comes from your web site.
[javascript]
window.addEventListener("message", messageReceived, false);

function receiveMessage(e) {
if (e.origin === "http://jonathanantoine.com") {

}
};[/javascript]

 

2 Responses

  1. Tiagonmas

    19/11/2013 14 h 34 min

    The names of the functions need to match on the event listener and the name of the function

    window.addEventListener("message", receiveMessage, false);

    function receiveMessage(e) {
    };

Comments are closed.