Code前端首页关于Code前端联系我们

微信小程序中空白页面重定向问题的解决方案

terry 2年前 (2023-09-23) 阅读数 71 #移动小程序

微信小程序中空白页面重定向问题的解决方案

一开始,小程序的入口文件直接指向tabbar的网站。这时出现问题: 2 扫描二维码时,第一次不会关闭主页,第二次进入时不会通过onLoad流程分析场景参数;

官方解释:tabbar的跳转方法触发的生命周期是onShow,没有onLoad,

此时,我在和朋友讨论重定向问题的时候,想到可以用类似的方法来完成,所以我立即实现它:

添加pages/index/index(入口文件)、pages/home/homepage(在app.json中tabbar页面主页)、pages/detail/details(详情页面); 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无法到达-->细节;

扫码-->index(redirectTo)-->此时详情;再次扫码-->index(redirectTo)-->detail 问题;绕过首页

由于首页请求量较大,不适合使用redirectTo;所以这个方法是一个折中的选择。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门