Dismiss
Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
移动端H5单页面应用路由变化与默认返回按钮效果不搭配解决方案 #1
Comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
beita1991 commented 28 days ago • edited
移动端H5单页面应用路由变化与默认返回按钮效果不搭配解决方案
功能与需求
做微信企业应用开发时,业务代码用的是react,路由用的react-router。遇到一种场景,列表页面(A)、选中项详情(B)、编辑功能(C)、选人功能(D),正常效果是 A-->B-->C-->D,然而D操作完后会跳转到B页面。用户点击左上角的微信应用自带返回按钮,这个时候返回到的是D页面,但是这个不是我想要的效果,我希望的是返回到A页面。
分析与提出问题
解决
从分析中可以看出应该与对应的 history Api 有关 ,查看相关 Api 与google了一番,发现了这遍blog 如何监听用户点击浏览器后退按钮。
代吗如下:
构建一个浏览历史存储对象,每次跳转将数据存储进去
这样可以知道浏览器的前进后退,然后将 对应的url与 urlList 中数据作比较,设置对应的index。
回到问题中用户D跳转到B,已知URL只要匹配 urlList 中数据然后找到对应的index,然后执行 history.go 去跳转。考虑到用户刷新操作,所以将数据变更存储到 localStorage 中
之后的工作就维护好这个 historyObject 对象。
丰富后的代码如下:
总结