d***@sonoscape.net
d***@sonoscape.net
  • 发布:2021-11-04 09:48
  • 更新:2023-08-20 00:14
  • 阅读:602

【报Bug】登录页面出现tabbar

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.0.1

HBuilderX类型: 正式

HBuilderX版本号: 3.2.12

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iphone 13

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
uni.addInterceptor('switchTab', {  
    // tabbar页面跳转前进行拦截  
    invoke(e) {  
        console.log(e)  
        if (!hasPermission(e.url)) {  
            console.log('未获取到登录权限,执行switchTab拦截');  
            uni.redirectTo({  
                url: '/pages/login/login'  
            })  
            return false  
        }  
        return true  
    },  
    success(e) {  
        // console.log(e)  
    }  
})

操作步骤:

详见bug描述

预期结果:

登录页不出现tabbar

实际结果:

登录页出现了tabbar

bug描述:

当用户打开app时,判断是否有登录,如果没有登录,拦截器addInterceptor会跳转(redirectTo)到登录页,此时登录页会出现tabbar

2021-11-04 09:48 负责人:无 分享
已邀请:
6***@qq.com

6***@qq.com

/**

  • 用户免登录方案(亲测可行):
  • 1、pages.json中将第一个页面设置为index页面,登录页加到tabbar中(只有配置在菜单中的页面才能去隐藏菜单)
  • 2、addInterceptor中无token跳转至登录页,有的话忽略
  • 3、登录页中mounted时隐藏tabbar
  • 4、首页中mounted中,展示菜单(showTabBar)并隐藏登录菜单uni.setTabBarItem({index: 3,visible: false})
    */
1***@qq.com

1***@qq.com

有一个笨办法,你可以在login页面去判断是否是跳转过来的,或者是在

     console.log('未获取到登录权限,执行switchTab拦截');    
            uni.redirectTo({    
                url: '/pages/login/login'    
            }) 

这里去传一个参数,login页面判断是否有这个参数如果有就证明是没有登录跳转过来的
然后去手动的关闭tarBar
uni.hideTabBar()

  • 1***@qq.com

    一般来说应该登录页面都是不显示tarBar的,所以我认为可以直接隐藏掉tarBar

    2021-11-04 14:44

  • d***@sonoscape.net (作者)

    感谢回复,试过了uni.hideTabBar()仅在tabbar页面才有效

    2021-11-04 15:07

  • 1***@qq.com

    回复 1***@163.com: 那你可以给这个longin页面在tabbar里面注册试试?

    2021-11-04 16:09

睡到自然醒呀

睡到自然醒呀

请问目前有解决方法不

小枫叶

小枫叶 - 外包接单加v:wlmk1234567 注明来意

这是什么情况下造成这样的?

yp

yp

出现了+1

要回复问题请先登录注册