window.uni.postMessage传参
时间: 2025-06-12 15:47:58 浏览: 7
### 关于 `window.uni.postMessage` 的正确传参方法
在使用 `window.uni.postMessage` 时,需要确保该方法的调用环境已经正确加载了 `uni-app` 提供的桥接脚本(如 `uni.webview.js`),并且宿主应用与 WebView 之间的通信通道已建立。以下是一个完整的使用说明和示例代码:
#### 方法签名
`uni.postMessage` 的方法签名如下:
```javascript
uni.postMessage({
data: {} // 传递的数据对象
});
```
其中,`data` 是一个 JSON 对象,表示需要传递给目标端的数据。
#### 示例代码
以下是一个完整的示例,展示如何在 WebView 中通过 `window.uni.postMessage` 进行传参[^1]:
```javascript
// 在 WebView 中调用 uni.postMessage 方法
function sendMessageToUniApp() {
try {
uni.postMessage({
data: {
message: "Hello from WebView!",
timestamp: new Date().toISOString()
}
});
console.log("Message sent to uni-app");
} catch (error) {
console.error("Error sending message:", error);
}
}
// 调用函数发送消息
sendMessageToUniApp();
```
#### 注意事项
1. **确保桥接脚本已加载**:在使用 `uni.postMessage` 前,必须确保 WebView 已加载 `uni.webview.js` 或其他相关桥接脚本[^4]。
2. **数据格式**:`data` 参数必须是一个 JSON 对象,不能直接传递复杂类型(如函数、Symbol 等)[^3]。
3. **错误处理**:建议在调用 `uni.postMessage` 时添加错误捕获逻辑,以便排查潜在问题[^5]。
#### 接收消息
在宿主应用中,可以通过监听 `message` 事件来接收来自 WebView 的消息[^2]。例如:
```javascript
window.addEventListener('message', function(event) {
console.log('Received message:', event.data);
});
```
---
###
阅读全文
相关推荐









