gpt4 book ai didi

java - 瓦丁 7 : Identifying a "browser back button click" through ViewChangedEvent?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:42 25 4
gpt4 key购买 nike

问题或多或少是标题所说的:我有一个实现 View 接口(interface)的 CustomView 类(因此,enter 函数采用 ViewChangeEvent 参数)。

我试图确定 View 更改何时由用户单击浏览器的“后退”按钮触发(与用户单击链接进入应用程序的 View 相反),但我无法确定到哪里(如果可能的话)获取此信息。

我在寻找正确的组件吗?我应该看看其他地方吗?有什么办法可以找到这方面的信息吗?

编辑:嗯,也许我可以在对 ViewChange 的每一次调用中添加一个自定义参数,这样我就可以“标记”“正常点击”并在没有它时识别“返回/前进”,但是这似乎是一个肮脏、丑陋的把戏......

最佳答案

好的,这将伴随一些故事,所以:

我找到了一种在 Vaadin 上识别“用户按下后退按钮”的方法,因为框架似乎通过 Page.updateLocation(String location, boolean fireEvents) 函数管理位置更改。不过,我还不能修改位置参数(这可能是由于 Vaadin 自己的体系结构或由于我自己的应用程序细节),所以我最终在 UI 类上使用了函数“changeVariables”(在继承、拥有、UI 类)以发送新的 ViewChangedEvent。

感觉有点像 hack,但正如我所说,我无法让它变得更好。


深入了解我的问题的具体细节,以防万一有人发现它有用,我需要以某种方式确定用户是通过“后退”浏览器按钮或“退格键”从不同的 View “返回” ,所以我决定在参数上使用一个标志来指示该 View 是“可恢复的”。该标志将有两个值:“retornable”(如“我刚刚进入 View ”)和“returning”(如“我刚刚回到可重载 View ”)。对于那些只看代码的人,这是 url 将显示的内容:

#!viewName/retflag=retornable&otherStuff=maybe
#!viewName/retflag=returning&otherStuff=perhaps

正如我所说,我的“入口点”位于扩展 UI 的“OurCustomUI”上,并具有以下小功能:

@Override
public void changeVariables(Object source, Map<String, Object> variables) {
super.changeVariables(source, variables);
}

在这里,想法是从变量 Map 中获取“location”变量并更新它。它会是这样的:myServer.myCompany.com/myApp/#viewName/retflag=retornable

因此代码将找到“retflag”值,将其更改为“returning”,创建 ViewChangedEvent 并触发它。由于某些原因,我需要在开头保留 super.changeVariables() 调用,但它似乎可以正常工作。

关于java - 瓦丁 7 : Identifying a "browser back button click" through ViewChangedEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48562479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com