uni-app webview H5页面跳转小程序页面 各种方法;包括 postMessage可以触发,但绑定的message方法不触发问题


2022-03-29更新

由于postMessage方法使用限制条件过多(小程序后退、组件销毁、分享才触发),考虑其他方案:

1.如果是普通跳转,即navigateTo等,则直接跳转时url?a=1进行传参,目标页面onLoad接收即可;

2.如果必须跳转 tabBar 页面,即使用switchTab方法,则 新建一个小程序中间页面a,先navigateTo携带参数跳到a,再从a用switchTab跳至目标页面,因为a已经是小程序页面则在a页面可以用EventChannel的emit, on等进行传参;

备注:reLaunch也可以跳转 tabBar 页面,但是会销毁其他页面,如果原页面 不能销毁重新加载,则不能使用,反之,可以替换 2 使用

-----------------------------------

原因:需要跳转到 小程序页面才能触发 ,停留在H5页面无法触发

微信官方api说明:https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

wx.miniProgram.postMessage 向小程序发送消息,会在特定时机(小程序后退、组件销毁、分享)触发组件的message事件

正确代码:

h5

1 wx.miniProgram.postMessage({ data: {
2           queryPam: 'eeeee'
3         }})
4         wx.miniProgram.switchTab({ url: '/pages/queryEngineer/index' })

小程序页面

<web-view v-if="showFlag" :src="webViewUrl" @message="message"></web-view>

message({ detail: { data } }) {
      console.log('====统计小程序webview绑定的message方法====')
      const fileData = data[0];
      console.log('$$$$$$$$$$$$$$$$$$$$$$$$$=111=message==fileData====',fileData)
      uni.$emit("tongjiTo", fileData);
    },

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM