赞
踩
移动端项目是 vue 框架写的 h5 页面,然后 uni-app 的项目中使用 web-view 组件通过 src 指向 h5 页面,现在需要从 h5 页面发送消息,由 web-view 组件接收消息。
window.parent.postMessage({
data: {
message: 'Hello from H5'
}
}, '*');
第二个参数需要指定为’*',表示任意域名都可以接收到消息。
<template> <view> <web-view src="/hybrid/html/index.html" @message="handleMessage"></web-view> </view> </template> <script> export default { methods: { handleMessage(event) { let message = event.detail.data.message; console.log('Received message: ' + message); // 在这里你可以根据接收到的消息来执行相应的方法 } } } </script>
<!DOCTYPE html> <html> <head> <!-- --> </head> <body> <div id="app"></div> </body> <script type="text/javascript" src="./uni/uni.webview.js"></script> <script> document.addEventListener('UniAppJSBridgeReady', function() { uni.webView.getEnv(function(res) { console.log('当前环境:' + JSON.stringify(res)); }); }); </script> </html>
uni.webView.postMessage({
data: {
message: 'Hello from H5',
}
});
<template> <view> <web-view src="/hybrid/html/index.html" @message="handleMessage"></web-view> </view> </template> <script> export default { methods: { handleMessage(event) { let { message } = event.detail.data[0]; console.log('Received message: ' + message); // 在这里你可以根据接收到的消息来执行相应的方法 } } } </script>
在博主的项目中方案一不适用,在 uni-app 中没有接收到 h5 发送的消息,采用方案二成功发送并接收,故推荐方案二。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。