什么是uni.addInterceptor

uni.addInterceptor 是用于拦截 uni 的api的方法,一般用于给api添加全局的属性,或者全局处理事件

登录拦截

使用 uni.interceptor ,实现当需要登录,并且没有token的时候跳转到登录页,否则正常跳转

import store from "../store";
const whiteList = [
  // "/pages/myInfo/myInfo"
];
//白名单 不需要登录的页面路径组成的数组

function hasPermission(url) {
  // 在白名单中或有token,直接跳转
  if (whiteList.indexOf(url) !== -1 || store.state.user.token) {
    return true;
  }
  return false;
}

uni.addInterceptor("navigateTo", {
  // 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
  invoke(e) {
    if (!hasPermission(e.url)) {
      uni.reLaunch({
        url: "/pages/myInfo/login",
      });
      return false;
    }
    return true;
  },
  success(e) {
    // console.log(e)
  },
});

uni.addInterceptor("switchTab", {
  // tabbar页面跳转前进行拦截
  invoke(e) {
    if (!hasPermission(e.url)) {
      uni.reLaunch({
        url: "/pages/myInfo/login",
      });
      return false;
    }
    return true;
  },
  success(e) {
    // console.log(e)
  },
});
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐