uniapp实现跳转拦截
原创小于 1 分钟
uniapp实现跳转拦截
注
之前在写小程序的时候由于页面不是很多,没有采用simpleRouter的拦截方式,选择采用了重写跳转方法来进行跳转拦截
// 此插件用来校验登录权限
import store from '@/store'
const useAuthRouter = () => {
const methodToPatch = [
'navigateTo',
'redirectTo',
'switchTab',
'navigateBack',
'reLaunch',
]
methodToPatch.map((item) => {
const original = uni[item]
uni[item] = function (opt = {}, needAuth = true) {
const { loginState } = store.state
if (!needAuth || loginState) {
original.call(this, opt)
} else {
uni.reLaunch(
{
url: '/pages/login/index',
},
false
)
uni.$u.toast('请重新登录')
}
}
})
}
export default {
install: useAuthRouter,
}
- 使用
main.js
// 注册拦截插件
Vue.use(useAuthRouter);