微信小程序 全局路由拦截

微信小程序 全局路由拦截

1. 微信小程序 全局路由拦截

// utils/filter.js
function loginCheck(pageObj) {
  if (pageObj.onLoad) {
      let _onLoad = pageObj.onLoad;
      // 使用onLoad的话需要传递options
      pageObj.onLoad = function (options) {
          if(wx.getStorageSync('userinfo')) {
              // 获取当前页面
              let currentInstance = getPageInstance();
              _onLoad.call(currentInstance, options);

          } else {
              //跳转到登录页
              wx.redirectTo({
                  url: "/pages/login/index"
              });
          }
      }
  }
  return pageObj;
}

// 获取当前页面    
function getPageInstance() {
  var pages = getCurrentPages();
  return pages[pages.length - 1];
}

exports.loginCheck = loginCheck;

2. 在需要使用的页面 中使用就行了

/
const filter = require('../../utils/filter');
Page(filter.loginCheck({
    // ...
    onLoad: function (options) {
       // ...
    },
    // ...
}));
版权声明:如无特殊标注,文章均来自网络,本站编辑整理,转载时请以链接形式注明文章出处,请自行分辨。

本文链接:https://www.shbk5.com/dnsj/73437.html