微信小程序 空白頁重定向---二維碼掃描第二次進入 不經過onLoad過程解析scene參數,跳轉問題


  在剛開始的時候將小程序的入口文件直接指向tabbar 的首頁,此時出現問題:二維碼掃描,第一次不關閉首頁,第二次進入時;不會經過onLoad過程解析scene參數;

官方中解釋:tabbar跳轉方式觸發的生命周期是 onShow,不經過onLoad,下圖:

此時,和小伙伴討論重定向問題時,想到用類似的方法可以做到,就立馬實行:

  app.json中加pages/index/index(入口文件),pages/home/home(tabbar頁面主頁),pages/detail/detail(詳情頁);pages/exclusive/exclusive

在index.js中 onLoad處理:

 /**
   * 生命周期函數--監聽頁面加載
   */
  onLoad: function (options) {
    // 入口文件 決定進入哪個頁面
    console.log('入口文件,參數scene,值detail%2C1127')
    var scene = options.scene; //掃碼進入有此參數
  var scene = decodeURIComponent(options.scene);
if (scene) { //'scene=detail%2C1127' 分隔符, 測試時為 , 號;真機時為%2C 原因是url編碼,但是使用decodeURI()解析不出來,所以走了兼容 let info_arr = []; info_arr = scene.split(','); //console.log(info_arr) let _type = info_arr[0]; let id = info_arr[1]; if (_type == 'detail') { wx.redirectTo({ url: `../detail/detail?id=${id}`, }) } else if (_type == 'exclusive') { wx.redirectTo({ url: `../exclusive/exclusive?id=${id}`, }) } }else{ wx.switchTab({ url: '../home/home', }) } },

此時,完美解決 從 掃碼-->home-->detail;再次掃碼-->home 不能到-->detail的問題;

此時 掃碼-->index(redirectTo)-->detail;再次掃碼-->index(redirectTo)-->detail的問題;越過home頁面

由於home頁面有大量的請求,不適宜用redirectTo;所以此方法算是折中的選擇了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM