feat
feat
  • 发布:2023-08-25 09:07
  • 更新:2023-09-01 17:17
  • 阅读:455

nvue页面如何监听5+创建的webview内h5发出的uni.postMessage

分类:nvue

vue页面可以通过globalEvent.addEventListener监听到

plus.globalEvent.addEventListener('plusMessage', function(msg){    
     if(msg.data.args.data.name == 'postMessage'){     
         console.log('子页面返回的数据为:'+JSON.stringify(msg.data.args.data.arg));    
    }    
});

但在nvue页面无论是上面的方法还是通过$on,都无法监听到postMessage
请问在nvue页面改如何监听postmessage,最好能提供一个示例
最小复现demo见下方安装包
基座版本 3.4.15

参考文档: vue-向-nvue-通讯

2023-08-25 09:07 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

webviewuni-app的双向通信可以使用以下方式:

webview/h5 发送消息:

plus.webview.postMessageToUniNView({    
 type: 'toUniAPP',    
 args: {    
     arg1: '123'    
 }    
}, '__uniapp__service');

uni-app 接受消息:

plus.globalEvent.addEventListener('plusMessage', (message)=>{    
// message打印的结果:    
// {    
//     "data": {    
//         "type": "toUniAPP",    
//         "args": {    
//             "arg1": "123"    
//         }    
//     },    
//     "targetId": "__uniapp__service",    
//     "originId": "NWindow101677899611098"    
// }    
})
  • feat (作者)

    这个方法也是在vue页面可以,在nvue页面就不行了

    2023-09-01 17:27

  • 1***@qq.com

    回复 feat: 大佬,解决了吗

    2023-09-07 11:16

  • feat (作者)

    回复 1***@qq.com: 换vue页面了,而且addEventListener这个方式监听如果不移除监听,后续再进入页面会重复触发,但监听的plusMessage是系统内部事件,不确定移除后会有什么影响,所以目前在用 [ webview组件+5+api操控webview的大小与位置 ] 的方案

    2023-09-07 17:15

要回复问题请先登录注册