首先,PWA基于浏览器实现的
我是用Vue-Router来实现页面的前进后退

但是遇到了个问题,
这里设个前提:

用户通过多次返回,从深层页面返回到首页,然后想要再次通过返回来退出软件
这时候PWA和原生APP的差别体现了出来

举个例子:

用户聊完天后, ↓

聊天模块

开开心心地去QQ空间浏览了一系列页面, ↓

QQ空间模块

然后从某个沙雕说说退出来一直想退到桌面。

这时!!!

PWA不听话了,它退到了之前记录的聊天模块去了↓

聊天模块

经过一系列思考和求助qwqqqq,包括考虑了登录模块
我大概有了自己的一套方法

首先要用到Vue-Router的

router.replace(location, onComplete?, onAbort?)
//以及
router.go(n)

router.replace()不会给history栈添加新纪录,而是替换掉当前history记录,
这个router.replace()是用来导航栏之间转换的,对我的项目来说是不太够用的

因为还有个登录模块,谁也不希望登录后按返回键回到了登录界面再退出,
即使用导航守卫来拦截也是会徒增history栈的长度

于是我想到尽量把登录模块做到线性跳转(比如A<->B<->C),而不是(A->B->C->A),
这样就可以在找回密码或者注册完后,通过router.go(n)来定向返回到登录界面,并且也清除了history栈
登录后用router.replace()跳转到主页就行了