- 添加一个文件interceptor.js(名字随意、位置随意)
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 = ["nav服务器托管igateTo", "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.navi服务器托管gateTo({
url: config.loginPage
})
return false
} else {
return e
}
}
},
fail(err) { // 失败回调拦截
console.log(err);
}
})
})
}
注册拦截器,App.vue中
script>
import interceptor from "./interceptor.js"
export default {
onLaunch: function() {
console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
console.log('App Launch')
interceptor();//只需要在小程序初始化时注册一次
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
/script>
- 注意点
这样貌似不被拦截。解决方案是:添加click方法
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 微软为金融界带来革命性突破——推出Microsoft 365中的下一代AI助手:Microsoft Copilot for Finance
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订…