不登录不想叫人家去看你小程序里面的部分内容,你可以这样做!
我这个前提是 uniapp 转的 小程序 这一块 其他的 我没有试过(大佬们可以自尝试)
.第一个:引入我下面的这样一块代码 最好放在你的封装 请求的文件夹里面
//只要是未登录状态,想要跳转到名单内的路径时,直接跳到登录页。
// 页面白名单,不受拦截
const whiteList = [
'/pages/index/start/start',//启动页面
'/pages/my/my',//我的页面
'/pages/index/index',//首页
'/packageA/store/store',
'/packageA/jxmd/jxmd',
]
function hasPermission (url) {
url=url.split('?')[0]
//这个是你存到本地的token 这里是你的名字
let islogin = uni.getStorageSync("login").token;
islogin = Boolean(islogin);//返回布尔值
// console.log(islogin,"是否登录");
// 在白名单中或有登录判断条件可以直接跳转
// console.log(whiteList.includes(url),whiteList.indexOf(url) !== -1);
if(whiteList.includes(url) || islogin) {//如果查到是白名单就为true,如果没有查到,登录了,也是true
return true
}
return false
}
uni.addInterceptor('navigateTo', {
// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
invoke (e) {
// console.log(e,"路由拦截");
if(!hasPermission(e.url)){
uni.navigateTo({
url: '/pages/1ogin/1ogin'
})
return false
}
return true
},
success (e) {
// console.log(e,'响应拦截');
}
})
//使用 这个 uniapp中的api
uni.addInterceptor('switchTab', {
// tabbar页面跳转前进行拦截
invoke (e) {
// console.log(e,"路由拦截");
if(!hasPermission(e.url)){
uni.navigateTo({
url: '/pages/1ogin/1ogin'
})
return false
}
return true
},
success (e) {
}
})
第二部就是 引入你们的 main.js(这里我的叫法 -- 主页面)
import "@/router/index.js';
第三步就是 如果没有登陆获取到 token 就会跳到相应的登陆界面 (白名单除外)
如有不足 请补充 谢谢