# Cocos JS 使用 Webview 通过 postMessage 进行通信
Cocos JS 使用 Webview 通过 postMessage 进行通信
我是用的是 cocos2.4.12
cocos 向 webview 发送消息
有的人说这个方式是可以的,但是我不行:
window.top.postMessage(data, origin);
其中data
就是需要传递的数据,origin
是协议+主机+端口号,当为"*"
时表示可以传递给任意窗口,如果要指定和当前窗口同源的话设置为"/"
。
通过上面的方式我失败了,我是用下面的方式:
let iframe = this.node.getChildByName("voideCom").getComponent(cc.WebView)["_impl"]["_iframe"];
iframe.contentWindow.postMessage({name:"叫我+V"}, "*");
webview 接收数据
webview 接收数据就很简单了:
window.addEventListener("message", function(event){
console.log("收到的数据----> ", event.data);
}, false)
webview 发送数据
window.parent.postMessage({
name: "叫我+V"
}, '*');
cocos 接收
// 取消监听
window.removeEventListener('message', this.handleMessage, false);
// 开启监听
window.addEventListener('message', this.handleMessage, false);
// 回调
handleMessage(e) {
console.log("收到的数据----> ", event.data);
}
其实就这么简单。
【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014