1.创建一个permission.js文件
//设置白名单,白名单中的路径不进行拦截
const whiteList = ['pages/login/index','pages/home/index']
// 检查地址白名单
function checkWhite(url) {
const path = url.split('?')[0]
return whiteList.indexOf(path) !== -1
}
// 登录页面路径
const loginPage = "/pages/login/index"
//要拦截的跳转方式
const list = ['navigateTo', 'redirectTo', 'reLaunch','switchTab']
list.forEach(item => {
uni.addInterceptor(item, {
invoke(to) {
//可以根据自己实际需求写
if (uni.getStorageSync('token')) {
if (to.url === loginPage) {
uni.reLaunch({
url: "/"
})
}
return true
} else {
if (checkWhite(to.url)) {
return true
}
uni.reLaunch({
url: loginPage
})
return false
}
},
fail(err) {
console.log(err)
}
})
})
2.将permission.js文件引入到main.js中
//main.js
import Vue from 'vue'
import App from './App'
import './permission'
const app = new Vue({
...App
})
Comments NOTHING