wx.miniprogram.postmessage获取数据
发布于 7 年前 作者 ming82 2086 次浏览 来自 问答

//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 回复

我也遇到过类似这个问题,你在你小程序端的message方法打印一下e,你就会看到data里面有两条记录,第一条是aa,第二条里面的值才是bb,如果分享调用三次,打印的data里面就会有三条记录,第三条才是最新的,e.detail.data[

e.detail.data.length-1

].foo   这样收到的才是最新的。我也不知道为什么会调用多次就会有多条记录,或者,即使有多条记录,怎么清除?

回到顶部