I am trying to use the postMessage/onMessage architecture in the onReady function to send some data but it is not working.
Does onReady not guarantee that my component is listening for messages?
Here is my code:
Component CODE:
<!doctype html>
<html>
<head>
<script type="text/javascript">
function init () {
// when a message is received from the page code
window.parent.postMessage('READY', '*');
window.onmessage = (event) => {
if (event.data) {
console.log("HTML Code Element received a message!");
}
}
}
</script>
</head>
<body onload="init()" style="background-color:lightgray;"></body>
</html>
Page CODE:
import {fetch} from 'wix-fetch';
import {getLatestEpisode, getCurrentTemp} from 'backend/spreakerModule';
let htmlDone = false;
$w.onReady(function () {
$w("#mostRecentEpisode").onMessage(event => {
if (event.data === "READY" && htmlDone === false) {
console.log(event.data);
$w("#mostRecentEpisode").postMessage("Send");
getLatestEpisode().then(episode => {
console.log(episode);
$w("#mostRecentEpisode").postMessage("Send");
})
htmlDone = true;
}
})
});