使用 vaadin 避免后退按钮

Avoid back button using vaadin

我使用 Vaadin CDI 插件开发 RIA 应用程序。 关于该应用程序:它有两个由 Navigator 维护的视图(viewA 和 viewB)。 用户故事非常简单:

  1. 用户进入视图A
  2. 执行一些业务
  3. 重定向到视图 B
  4. 使用地址栏访问一些外部网站(例如 google.com)
  5. 按返回键,它会转到他看到的最新页面 (viewB),而不是 viewA

任何suggestions/tips-n-tricks如何避免重定向到viewB,而是重定向到viewA?

Vaadin 论坛对此保持沉默。

谢谢

您可以在您的 ViewB 中覆盖 View.enter(...),并根据您的应用程序状态,使用 Page.getCurrent().setUriFragment(recentUrl, false);

更新您的视图 URI

我遇到了同样的问题,但使用以下代码解决了:

getUI().getNavigator().addViewChangeListener(new ViewChangeListener() {
                public boolean beforeViewChange(ViewChangeEvent event) {
                    return changeView;
                }

                @Override
                public void afterViewChange(ViewChangeEvent event) {
                    // TODO Auto-generated method stub

                }});

设置 changeView = true 仅通过适当的导航(例如:点击按钮)。

这就是您如何避免使用浏览器后退按钮进行导航的方法。在这种情况下,如果用户使用任何浏览器按钮,视图不会更改,并且会保留在同一页面上。