uniapp h5如何给webview发送消息
在uniapp开发的H5页面中,如何实现向嵌入的webview发送消息?需要从H5页面向webview传递数据并触发相应事件,求具体实现方法和代码示例。
2 回复
在 UniApp 的 H5 环境中,可以通过 uni.postMessage 向 Webview 发送消息。以下是实现步骤和示例代码:
实现方法
- 在 UniApp 页面中发送消息:
使用uni.postMessage向 Webview 发送数据。 - 在 Webview 页面接收消息:
通过window.addEventListener('message', ...)监听消息事件。
示例代码
1. UniApp 页面(发送消息)
// 在 UniApp 的 H5 页面中
// 假设 Webview 的 URL 为:https://example.com
// 向 Webview 发送消息
uni.postMessage({
data: {
type: 'fromUniApp',
message: 'Hello from UniApp H5!'
}
});
2. Webview 页面(接收消息)
<!-- 在 Webview 的 HTML 页面中 -->
<script>
window.addEventListener('message', function(event) {
// 检查消息来源,确保安全性
if (event.origin !== 'https://your-uniapp-domain.com') return;
// 解析 UniApp 发送的数据
const data = event.data;
if (data && data.type === 'fromUniApp') {
console.log('收到消息:', data.message);
// 执行其他操作
}
});
</script>
注意事项
- 域名安全:在 Webview 中通过
event.origin验证消息来源,避免恶意数据。 - 数据格式:
uni.postMessage发送的数据需为对象,且通过event.data接收。 - 平台兼容性:此方法仅适用于 H5 平台,其他平台(如小程序、App)需使用不同 API。
完整流程
- UniApp 页面调用
uni.postMessage发送数据。 - Webview 页面通过
message事件监听并处理数据。
通过以上方法,即可实现 UniApp H5 向 Webview 发送消息的功能。


