需求體現(xiàn):
在小程序里面腌乡,實現(xiàn)小程序和H5頁面互相跳轉(zhuǎn)弯汰。
1. 實現(xiàn)H5頁面跳轉(zhuǎn)小程序
小程序里面加載H5頁面综慎,需要嵌在web-view里面,注意:一個項目只能有一個酬姆。 例如:在小程序里面打開百度首頁嗜桌,在小程序項目里面src/pages/新建一個webview的文件夾,含有wxml/wxss/json/js
wxml:
<web-view src="{{url}}"></web-view>
js:在onLoad里面獲取到url這個參數(shù)辞色,然后賦值給data骨宠,這樣在wxml里面就能取到url的值。
Page({
data: {
url: '',
},
onLoad: function (param) {
this.setData({
url: decodeURIComponent(param.url),
})
}
});
json/wxss可以是空文件
在小程序的頁面跳轉(zhuǎn)到H5頁面的寫法
wx.navigateTo({
url: '../webview/index?url=https://www.baidu.com/'
});
2. H5頁面返回小程序
從H5頁面返回小程序頁面相满,需要使用微信SDK提供的跳轉(zhuǎn)方法层亿。
window.wx.miniProgram.navigateTo({
url: `/page/account/index`,
});
使用微信的SDK方法,需要先發(fā)送簽名驗證wx.config
3. 小程序和H5互跳注意事項
[問題描述]:wx.miniProgram.navigateTo中url無法跳轉(zhuǎn)問題
[問題解決]:app.json中配置的tabBar與wx.navigateTo中的url引用相同頁面導(dǎo)致
首先pages/account/index這個路徑在app.json已經(jīng)存在立美,也就是當(dāng)前從H5頁面window.wx.miniProgram.navigateTo(url)的url已經(jīng)和app.json的一樣匿又。此時是不能通過這個方式跳轉(zhuǎn),而是要改成window.wx.miniProgram.reLaunch(url)
總結(jié):如果url在app.json已定義建蹄,則使用reLaunch跳轉(zhuǎn)碌更,如果沒有,則使用miniProgram.navigateTo(url)