mini program html5,微信小程序的坑之wx.miniProgram.postMessage

本文介绍了一种在小程序页面关闭时回传参数的方法。利用wx.miniProgram.postMessage结合wx.miniProgram.navigateBack实现从H5页面向小程序传递数据。需要注意的是消息传递的时机,确保在正确的时间点调用API。
摘要由CSDN通过智能技术生成

工作中有个需求是小程序的网页在关闭的时候,需要回传给小程序一个参数

查阅小程序官方文档,有这样一个接口 wx.miniProgram.postMessage ,可以用来从网页向小程序发送消息,然后通过 bindmessage 事件来监听消息,如下是官方文档描述

bVbii6U?w=1193&h=499

以下是代码:

// 网页代码

postMessage

wx.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: '获取成功' })

这样再试试,发现能正常捕获消息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值