私は反応Webページと反応ネイティブWebviewの間でデータを渡しています。私は、Webページが読み込まれたら、モバイル上の反応したネイティブのWebviewに信号を送りたいと思う。window.postMessageがcomponentDidMountで動作しないsetTimeOutなしで反応します
setTimeout
と一緒に使用しない限り、反応するウェブページでwindow.postMessage()
が機能しないのはなぜかと思います。コンソールには何のエラーもありませんが、動作させるには約500時間遅れる必要があります。誰もそれを説明できますか?私はsetTimeout
を避けるほうが信頼できないと感じるので好きです。
@observer
class TalkToMobile extends React.Component {
@observable message;
render() {
return (
<div>
{
message ?
<Editor data={this.message}/>: null
}
</div>
)
}
componentDidMount() {
document.addEventListener('message', (e: any) => {
if (e.data) {
this.message = JSON.parse(e.data);
}
});
let payload = {};
payload.command = "giveMeData";
window.postMessage(JSON.stringify(payload), "*")
/*
setTimeout(()=>{
let payload = {};
payload.command = "giveMeData";
window.postMessage(JSON.stringify(payload), "*")
}, 500);*/
}
}