// 发送数据到网页
const sendDataToWeb = (data) => {
// 获取所有页面路由
const pages = getCurrentPages();
// 找到最后一个索引
const index = pages.length - 1;
// 获取到当前页面的webView实例
const currentWebview = pages[index].$getAppWebview();
// 取到真正的webview
const webView = currentWebview.children()[0];
webView.evalJS(`RequireMapMobile('${JSON.stringify(data)}')`);
}
const context = getCurrentInstance(); // 允许访问对高级使用或库创建者有用的内部组件实例
// 接收浏览器发送的消息
const messageHanle = (e) => {
console.log("浏览器发送的消息", e.detail.data[0]);
};

- 发布:2025-04-03 12:55
- 更新:2025-04-03 16:52
- 阅读:78
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 23H2
HBuilderX类型: 正式
HBuilderX版本号: 4.57
手机系统: HarmonyOS NEXT
手机系统版本号: HarmonyOS NEXT Developer Preview
手机厂商: 华为
手机机型: nova 13
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://static-mp-ff40e3ac-9cb8-4dc9-add1-486c5e802f30.next.bspapp.com/ywx/webview.html
示例代码:
操作步骤:
同样的代码,就在鸿蒙next下无法发送消息到浏览器,可以接收消息。安卓和iOS正常
同样的代码,就在鸿蒙next下无法发送消息到浏览器,可以接收消息。安卓和iOS正常
预期结果:
ios、android和harmonyos next通过webview与浏览器通信
ios、android和harmonyos next通过webview与浏览器通信
实际结果:
鸿蒙next不能发送消息到浏览器,但是可以接收消息。
鸿蒙next不能发送消息到浏览器,但是可以接收消息。
bug描述:
**** 在harmonyos next下发送数据没效果,可以接收消息。android和iOS是可以的。目前是在harmonyos next 5.0.0下运行的

你直接参考我这样写吧,如果不行的话那可能就是H5端有点问题,或者uniapp又有什么特殊bug了,不兼容你这个机型。补充一下,你要等H5页面完全加载完之后才能调用获取方法,你一进来就调用的话(比如onload)是获取不到的。
Adlaw
uni.createWebviewContext第一个参数是web-view这个组件绑定的id
2025-04-03 15:30
忆往昔 (作者)
回复 Adlaw: 那个是使用vue2的语法了,this。这个方法其实我也试过,也不行。请问你成功了吗,纯血鸿蒙(harmonyos next)
2025-04-03 15:47
Adlaw
回复 忆往昔: 我是vue3,这个方法一定行,我都做了好多鸿蒙项目了
2025-04-03 15:52
忆往昔 (作者)
回复 Adlaw: uni.createWebviewContext('webview', this).evalJS(
RequireMapMobile(${JSON.stringify(mapConfig)})
)打印console.log(uni.createWebviewContext('webview', this)); 结果是{
"evalJS": function evalJS() {},
"evalJs": function evalJs() {},
"back": function back() {},
"forward": function forward() {},
"reload": function reload() {},
"stop": function stop() {}
} 获取到的都感觉不对,你之前的项目可能不是harmonyos next的纯血鸿蒙
2025-04-03 16:02