我正在编写一个可安装的PWA,并且我希望后退按钮的行为尽可能反映移动设备上已安装的应用程序。因此,例如,我希望back
返回到基本状态,然后希望随后的back
退出应用程序。似乎历史记录API不够丰富。
具体地说,有什么方法可以知道我在历史记录数组中的位置吗?它通常被称为堆栈,但这并不完全正确,因为从不“弹出”项目。例如,即使我pushState(); pushState(); pushState(); back(3)
,然后是history.length==4
,即使我现在处于职位1。如何获得1
?
类似地,是否有任何方法可以在不导航到先前条目的情况下对其进行查询?我当时以为我的应用程序条目URL可以replaceState({page:1})
,因此我可以遍历历史记录条目,确定我当前位置和条目位置之间的差异,然后调用back(delta)
。
由于该应用程序使用OAuth,因此变得更加复杂,因此历史记录数组中的某些条目是OAuth提供程序的条目。