"// 方式1: 使用 @message 事件 (推荐)
const handleMessage = (e) => {
console.log('小程序接收到web-view消息:', e);
// 小程序中消息数据在 e.detail.data 中
if (e.detail && e.detail.data) {
const messageData = e.detail.data[0]; // 取第一个消息
console.log('解析后的消息数据:', messageData);
processMessage(messageData);
}
}
// 方式2: 使用 @onPostMessage 事件 (兼容性)
const handlePostMessage = (e) => {
console.log('通过onPostMessage接收:', e);
if (e.detail && e.detail.data) {
const messageData = e.detail.data[0];
processMessage(messageData);
}
}
// 统一处理消息
const processMessage = (messageData) => {
if (!messageData) return;
switch (messageData.type) {
case 'switchCamera':
console.log('切换摄像头:', messageData.cameraFlag);
// 在这里处理摄像头切换逻辑
uni.showToast({
title: `切换到${messageData.cameraFlag ? '机场视角' : '无人机视角'}`,
icon: 'none'
});
break;
case 'init':
console.log('H5页面初始化完成:', messageData.message);
break;
default:
console.log('未知消息类型:', messageData);
}
}"
1 个回复
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
小程序平台的信息传递不是实时的,是特定时机统一返回。https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html