有做过app的小伙伴们 都知道 一个app都有 启动页 引导页 登录页 退出登录 TabController主体切换页 等等~
场景一 第一次安装完app 首次启动 显示的是启动页,然后是引导页,接着是登录页 ,登录成功后 是TabController主体切换页
场景二 非首次启动app 首先显示依然是 启动页,这个时候没有引导页,直接从启动页 ,跳到登录页,登录成功后 跳到TabController主体切换页
场景三 app版本升级了 又需要显示引导页
场景四 app从退出登录页 回到登录页
这些场景再熟悉不过了吧,然而这中间的逻辑及跳转 是不是有点复杂呢?
今天我们就来讨论一下怎么破这个局。
首先说明一下 按照官方的示例程序,用路由的push pop是有点问题的 比方说 跳转逻辑要放哪个合适?放main里? 放启动页里? 放登录页里? 仔细想想就知道都有问题。
放main里的话 有二点问题,第一点是 main文件里面写很多逻辑代码 和跳转代码,弄得复杂,阅读性变得很差。第二点是 main里面是要放一个page的,如果做逻辑判断,才能确定main里面到底放哪个page,结果是跳转的过程中 会出现黑屏的现象!至于放其他地方更不合适,他们覆盖不了所有场景,难以胜任!
我们的办法是main里面先放一个startAppPage,把这个page作为根,这个startAppPage是始终在那里的,这样可以解决跳转过程出现黑屏的现象,然后这个page里面处理逻辑,因为是单独一个page里面写逻辑代码,解决main里面写些乱七八糟的代码,
然而再实践中会遇到一点不完美的东西,就是从startAppPage 经过逻辑代码push到 你需要的page时候 会有一个动画,在平常这个动画也是很好的, 但在startAppPage作为根 ,就遇到一点问题!
app启动后经过main 要显示startAppPage,立马经过逻辑代码,push到下个page,push是有动画的,是需要时间来完成的, 就会看到,启动后有闪一下。这个闪一下,就是push的动作,被我们看到了。 所以说需要解决一个不完美的问题。我的办法就是~ startAppPage push不要动画,就不需要动画时间,就会立即push到下一个page,这样就看不到 会闪一下的问题了。
至此app的整体框架也算搭好了!这个框架可以实现开篇说的所有场景,而且适用于更复杂的场景! 至于满足开篇所有场景的 逻辑代码怎么写,这个就是各位小伙伴的事了,发挥各位小伙伴们的才智的时候就在此刻啦!