收藏
回答

wx.miniprogram.postmessage获取数据

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug web-view 客户端 6.7.0 2.4.0

//h5页面

var jsondata='aa'

wx.miniProgram.postMessage({data: {foo: jsondata}})


//小程序

<web-view src='{{h5Url}}'  bindmessage="message"></web-view>


message: function (e) {

    var that = this

    that.shareData = e.detail.data[0].foo

    console.log(that.shareData)

},

h5页面A嵌套在小程序里面。第一次进入h5页面A的时候点击右上角分享按钮,可以触发messge方法,接收到参数shareData为aa,h5页面A上有个一按钮,点击按钮会跳转到(window.location.href='新连接地址')一个新的h5页面B,手机返回键返回到A页面的时候会给jsondata重新赋值‘bb’,然后点击分享按钮,获取到的shareData值还是aa而不是重新赋值的bb,请问这是什么原因


回答关注问题邀请回答
收藏

1 个回答

  • 灯泡
    灯泡
    2019-01-11

    我也遇到过类似这个问题,你在你小程序端的message方法打印一下e,你就会看到data里面有两条记录,第一条是aa,第二条里面的值才是bb,如果分享调用三次,打印的data里面就会有三条记录,第三条才是最新的,e.detail.data[e.detail.data.length-1].foo   这样收到的才是最新的。我也不知道为什么会调用多次就会有多条记录,或者,即使有多条记录,怎么清除?

    2019-01-11
    有用
    回复 1
    • 2019-01-11

      系统默认存的是个数组,一直往里面添加,要想清除应该数组清空应该就可以了吧

      2019-01-11
      回复
登录 后发表内容