使用vaadin避免使用后退按钮

时间:2016-04-04 20:46:26

标签: button navigation vaadin back

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

  1. 用户输入viewA
  2. 执行一些商业活动
  3. 重定向到viewB
  4. 使用地址栏访问某个外部网站(例如google.com)
  5. 按回去,看到他看到的最新页面(viewB),而不是viewA
  6. 任何建议/提示 - 如何避免重定向到viewB,但重定向到viewA?

    Vaadin论坛对此事情保持沉默。

    谢谢

2 个答案:

答案 0 :(得分:3)

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

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(例如:点击按钮)。

这可以避免导航使用浏览器后退按钮。在这种情况下,如果用户使用任何浏览器按钮,则视图不会更改,并且它将保留在同一页面上。

答案 1 :(得分:1)

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