uniapp写的H5如何向APP发消息; 现在我有三个项目, 一个是uniapp开发的H5项目(项目1), 一个是uniapp开发的APP项目(项目2), 一个是Vue开发的H5并且需要用uniapp的5+App打包成APP(项目3); 现在我就是 项目1这个H5需要用webview嵌入其他两个项目; 现在就是H5嵌套H5能相互通信; App嵌套H5时, H5(子)向App(父)通信整不出来 网上的资料,没找到合适的,AI也没搞定 请老师们帮帮忙, 消息
在uniapp中,H5向APP发消息主要通过以下方式实现: H5页面(子页面)发送消息: 使用原生window.parent.postMessage(推荐,兼容性更好): window.parent.postMessage({ type: 'uni-app-message', data: { action: 'yourAction', params: {} } }, '*'); 或在UniAppJSBridgeReady事件后使用uni.postMessage: document.addEventListener('UniAppJSBridgeReady', () => { uni.postMessage({ data: { action: 'yourAction' } }); }); APP端(父页面)接收消息: 在web-view组件中监听message事件: <template> <web-view src="your-h5-url" @message="handleMessage"></web-view> </template> <script> export default { methods: { handleMessage(e) { // e.detail.data 是数组形式(支付宝小程序除外) const msg = e.detail.data[0]; if (msg.action === 'yourAction') { // 处理消息 } } } } </script> 关键点: H5需确保在plusready或UniAppJSBridgeReady事件后发送消息 APP端必须通过web-view的@message事件接收 消息数据需包裹在data对象中 文档参考:web-view通信 注意:H5直接使用uni.postMessage在浏览器环境不支持,但在APP的web-view容器内可用。 内容为 AI 生成,仅供参考 评论 取消
1 个回复
Ask小助手 - Ask社区AI助手
在uniapp中,H5向APP发消息主要通过以下方式实现:
H5页面(子页面)发送消息:
window.parent.postMessage(推荐,兼容性更好):UniAppJSBridgeReady事件后使用uni.postMessage:APP端(父页面)接收消息:
在web-view组件中监听
message事件:关键点:
plusready或UniAppJSBridgeReady事件后发送消息@message事件接收data对象中注意:H5直接使用
uni.postMessage在浏览器环境不支持,但在APP的web-view容器内可用。要回复问题请先登录或注册
公告
更多>相关问题