使用流路由器检测是否通过浏览器后退按钮输入了路线
Detect if route was entered via browser back button using flow router
我使用 meteorjs 创建了一个应用程序,并将 FlowRouter 作为我的路由器。
我有一个 pin 保护屏幕,用户在尝试输入 'protected route' 时会被重定向到该屏幕。然后这会要求输入密码并将用户转发到 'protected route' 模板。
向前移动一切正常,但是当用户单击后退按钮时,当然会显示 pin 保护屏幕,需要再次单击后退按钮才能 return 回到之前的状态。我需要在返回时跳过或忽略引脚保护屏幕。
我想到了几个解决方案,但在尝试实施它们时却力不从心。
可能的解决方案
理想情况下,我希望 'pin protection' 重定向加载而不推送历史状态。这意味着用户启动的屏幕将在单击后退时加载。
如果这不起作用或不可能,我将需要找到一种方法来判断用户在离开当前路线时是否单击返回。
如果其他人遇到类似的事情并且有解决方案,我将非常感谢您的帮助。谢谢
我遇到过类似的事情。
选项 1:您可以创建一个 pinEntered
布尔变量,当用户成功输入 pin 时该变量会切换为 true。然后只需在您的路由逻辑中检查此真实性。如果 var 的计算结果为真,那么您可以添加一个条件,在按下后退按钮时它会完全跳过该页面。
- 在受保护页面的路由中有条件地设置此 var
- 在后退按钮事件中检查其值
我使用 meteorjs 创建了一个应用程序,并将 FlowRouter 作为我的路由器。
我有一个 pin 保护屏幕,用户在尝试输入 'protected route' 时会被重定向到该屏幕。然后这会要求输入密码并将用户转发到 'protected route' 模板。
向前移动一切正常,但是当用户单击后退按钮时,当然会显示 pin 保护屏幕,需要再次单击后退按钮才能 return 回到之前的状态。我需要在返回时跳过或忽略引脚保护屏幕。
我想到了几个解决方案,但在尝试实施它们时却力不从心。
可能的解决方案
理想情况下,我希望 'pin protection' 重定向加载而不推送历史状态。这意味着用户启动的屏幕将在单击后退时加载。
如果这不起作用或不可能,我将需要找到一种方法来判断用户在离开当前路线时是否单击返回。
如果其他人遇到类似的事情并且有解决方案,我将非常感谢您的帮助。谢谢
我遇到过类似的事情。
选项 1:您可以创建一个 pinEntered
布尔变量,当用户成功输入 pin 时该变量会切换为 true。然后只需在您的路由逻辑中检查此真实性。如果 var 的计算结果为真,那么您可以添加一个条件,在按下后退按钮时它会完全跳过该页面。
- 在受保护页面的路由中有条件地设置此 var
- 在后退按钮事件中检查其值