欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

未阻止 Uniapp 小程序路由拦截器、导航器

最编程 2024-04-12 07:04:11
...
import store from "./store"; let config = { //白名单页面 whiteList: [ "/pages/login/login", "/pages/guides/guides", "/pages/index/index" ], //登录页 loginPage: "/pages/login/login" } export default async function interceptor() { /** * 页面跳转拦截器 */ let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; // console.log("list",list); list.forEach(item => {//遍历各个方式,进行拦截 uni.addInterceptor(item, { invoke(e) { // 调用前拦截 //这里token的获取,看各人 const token = store.state.user.token //获取要跳转的页面路径(url去掉"?"和"?"后的参数) let url = e.url.split('?')[0]; let notNeed = config.whiteList.includes(url) // 如果在whiteList里面就不需要登录 if (notNeed) { return e } else { //需要登录的页面 if (!token) { uni.navigateTo({ url: config.loginPage }) return false } else { return e } } }, fail(err) { // 失败回调拦截 console.log(err); } }) }) }