场景:
在没有登录的时候,一打开app 就要显示登录页面,如果登录过则显示第一个tab页面
由于底部的tab最多只能有五个,并且五个都已经占用,没有多余的tab分给登录页面,
如果将登录放在二级页面,那么,ios下屏幕上的左滑动,会返回到上一层,安卓的物理返回键,也会返回到上一层,无法做到登录页面视觉上是第一个页面
解决方案有两种
1、将登录做成一个组件页面,放在pages 配置的首页上,首页onload 时就判断登录态,根据条件显示是否为登录组件
2、将登录页面放在二级页面,并且pages.json 里面配置该页面不能左滑动 "popGesture": "none" ,同时,在页面的 onBackPress 事件中
onBackPress(e){ if(e.from=='backbutton'){ //安卓下物理返回键无效 return true; } }
就可以做到登录页面视觉上为第一级页面,登录后调用switchTab切换到首页即可
注意:
退出登录的时候,如果只是清掉登录态,将页面跳转(navigateTo)到登录页面,或者是switchTab到放有登录组件的首页,在没有重启APP的情况下,所有的tab页面是不会被销毁的,在此情况下登录,所有放在页面作用域下的变量都是不会更新的。
使用 reLaunch 到登录页面可以避免这个问题
原文地址:https://www.cnblogs.com/panyujun/p/12988858.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。