工作中有个需求是小程序的网页在关闭的时候,需要回传给小程序一个参数
查阅小程序官方文档,有这样一个接口 wx.miniProgram.postMessage ,可以用来从网页向小程序发送消息,然后通过 bindmessage 事件来监听消息,如下是官方文档描述
以下是代码:
// 网页代码
postMessagewx.miniProgram.postMessage({ data: '获取成功' })
wx.miniProgram.navigateBack({delta: 1})
// 小程序代码
Page({
handleGetMessage: function(e) {
console.log(e.target.data)
}
})
写完试了下,期待打印 “获取成功” ,而实际小程序里面啥也没打印。。。
然后仔细看官方文档,发现有这句话:
网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。
也就是只有在小程序后退、组件销毁、分享时才会触发
所以应该改变 postMessage 的时机,调换顺序就可以了
wx.miniProgram.navigateBack({delta: 1})
wx.miniProgram.postMessage({ data: '获取成功' })
这样再试试,发现能正常捕获消息了