最近在開發中遇到以下問題,寫出來記錄一下
具體場景如下:
小程序如果首頁直接使用<web-view>打開h5頁面,在h5頁面中點擊跳回到小程序,小程序頁是沒有返回鍵的。
網上查找一些資料后沒有合適的解決方案,思考了一下,決定自己在小程序生命周期的onLoad上處理一下。
1.小程序首頁設置為h5跳回的小程序頁面(非h5頁面,簡稱頁面A)。
2.設置頁面A標題和h5標題一致,這樣用戶看不出頁面發生了跳轉。
3.頁面A默認不顯示html內容,在頁面A onLoad 事件中判斷是否存在h5頁面跳回傳遞的參數,如果沒有就直接跳到存在<web-view>的小程序頁面中(頁面B)。
4.如果獲取到了h5返回的參數,則顯示頁面A內容,不需要跳到頁面B。
具體代碼如下:
頁面A onLoad 部分代碼
/** * 生命周期函數--監聽頁面加載 */ onLoad: function(options) { //獲取頁面B地址里的都參數 if (options.otherUserId != undefined) { //參數存全局 wx.setStorageSync('realOtherUserId', options.otherUserId); wx.setNavigationBarTitle({//修改標題 title: '身份認證' }) this.setData({ showPage: true//顯示頁面A }) } else { //沒獲取到參數 跳到頁面B wx.redirectTo({url: '/pages/H5home/H5home'}) } },
頁面B中 h5代碼
$("#changePage").on('click',function(){//點擊跳回小程序頁,傳參 wx.miniProgram.navigateTo({url: '/pages/idCard/idCard?otherUserId=123123'});//跳回小程序的page和傳遞的參數 })
這樣如果從頁面B跳到頁面A,頁面A右上角就會出現小程序自帶的返回鍵,點擊它,就回到了頁面B,反復跳也沒關系。
解決! 撒花ヽ(°▽°)ノ