微信小程序webview postMessage使用

web-view 组件 bindmessage说明:

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

示例:

// <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

// javascript
wx.miniProgram.navigateTo({url: '/path/to/page'})

wx.miniProgram.postMessage({ data: 'foo' })
wx.miniProgram.postMessage({ data: {foo: 'bar'} })

wx.miniProgram.getEnv(function(res) { 
    console.log(res.miniprogram) 
})

 

注意: postMessage 的 data 键名不能改,不然取不到数据

小程序代码

<web-view bindmessage="handlePostMessage" src="https://www.xxx.com/test.html"></web-view>
Page({
    handlePostMessage(e) {
        console.log(e.detail.data)
    }
})

 

总结:微信小程序的 webview 中 postMessage,会把信息(对象)提交到一个消息队列,而这个消息队列只会在特定的场景(组建销毁,或分享)才会触发。不适合实时的数据传递,比较适合数据上报这种场景。使用时对这个消息队列(数组)遍历,最好对每一次 postMessage 的对象格式进行约定,以方便遍历时的批量处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值