收藏
回答

请问wx.miniProgram.postMessage为什么接收不到数据?

H5页面:

wx.miniProgram.navigateBack({delta: 1})

 wx.miniProgram.postMessage({ data: '获取成功' })

小程序:

<web-view src="{{docUrl}}" bindmessage="handleGetMessage" ></web-view>

handleGetMessage: function (e) {

console.log('ddddddddddddxxxxxxxxxx',e)

}

是哪里除了问题呢,请问怎样才能获取到数据的呢?


最后一次编辑于  08-06  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 思男
    思男
    08-06

    先postMessage,再back。

    机制是在你执行返回、分享、销毁的时候获取之前post的消息

    你代码里触发了返回,但是这个时候还没有消息,自然获取不到。

    H5的两行代码换一下顺序。

    08-06
    赞同
    回复 5
    • 赤耳乔
      赤耳乔
      08-06
      换过了,如果换了的话,结果连后退都不执行了
      08-06
      回复
    • 思男
      思男
      08-06回复赤耳乔
      开启debug,看报错。
      08-06
      回复
    • 赤耳乔
      赤耳乔
      08-06回复思男
      wx.miniProgram.postMessage这个显示undefined,wx.miniPrograme提示只有navigateBack , navigateTo , reLaunch ,redirectTo,switchTab这几个方法,压根不包含postMessage,这是什么情况呢?
      08-06
      回复
    • aholy.bacii
      aholy.bacii
      08-06回复赤耳乔
      首页没有页面栈,会报错是正常,
      08-06
      回复
    • 赤耳乔
      赤耳乔
      08-06
      可以加微信私聊吗15253380518,不方便的话我加你的话,可以加我吗
      08-06
      回复
  • aholy.bacii
    aholy.bacii
    08-06

    网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data },data是多次 postMessage 的参数组成的数组。你分享时就能收到了。

    08-06
    赞同
    回复 7
    • 赤耳乔
      赤耳乔
      08-06
      后退呢,上面后退的代码是不是有问题呢?
      08-06
      回复
    • aholy.bacii
      aholy.bacii
      08-06

      wx.navigateBack参数是delta是页面栈的index,请仔细查阅下文档,这里不是一个可以被捕获的参数。

      小程序后退、组件销毁、分享只接收postMessage 发送的数据。

      如果是navigateBack时,也发送的是postMessage 的数据。


      08-06
      回复
    • 赤耳乔
      赤耳乔
      08-06回复aholy.bacii
      本人是新手,不大明白,请问代码要怎么修改呢
      08-06
      回复
    • aholy.bacii
      aholy.bacii
      08-06回复赤耳乔

      你可以在探究性这个navigateTo接口,可以直接导航到目的地页面,且发送数据过去。https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html

      08-06
      回复
    • 赤耳乔
      赤耳乔
      08-06回复aholy.bacii
      navigateTo这个用在web-view中能跳到目的地页面吗,我试了一下跳不过去呢
      08-06
      回复
    查看更多(2)