在小程式中,隻要每次修改代碼或者增加新的内容都是需要發版才行,常常用到與一些活動頁面,這個時候小程式提供的 webview H5
就可以解決這個問題,通過調用
頁面,傳參完成一些常用的功能。以後每次更改的時候,隻需要修改H5頁面就行。
- 小程式webview元件對嵌入的H5頁面有要求、必須在小程式管理背景配置為合法的業務域名。
H5端
- H5頁面需要引用微信提供的官方sdk
<script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
- 通過綁定一個點選事件去觸發一個方法給小程式通信,data就是我們需要傳的參數給小程式
wx.miniProgram.postMessage({
data: {
value,
name,
phone,
address,
},
})
小程式端
- 頁面中添加
元件、并添加監聽事件webview
<web-view src="{{src}}" bindmessage='receivePostMsg'></web-view>
- js裡面添加監聽事件,e裡面可以看到傳遞的參數,根據收到的資訊進行相應操作
receivePostMsg(e) {
console.log(e)
},
通信之間的坑
- 網頁向小程式 postMessage 時,會在特定時機(小程式後退、元件銷毀、分享)觸發并收到消息。是以想收到消息的時候,就要做下上面的操作才可以。比如發消息之後,在執行個頁面回退等。
- 是以這個小程式隻能在特定的時機去觸發,需要調用一個微信發方法
傳回上一級頁面,然後就可以列印東西wx.miniProgram.navigateBack()
if (name || phone || address || value) {
wx.miniProgram.postMessage({
data: {
value,
name,
phone,
address,
},
})
wx.miniProgram.navigateBack()
}
- 這樣就可以解決傳參的問題。