0

我正在使用历史类(com.google.gwt.user.client.History)的 GWT 项目。现在项目运行良好。但是客户希望项目使用唯一的 url 运行以确保安全。我试图调查使用具有唯一 url 但没有运气的 GWT History 的方式。如果您知道解决方案,请给我建议。非常感谢。

4

1 回答 1

1

好吧,GWT 中的 History 实现是基于散列片段的,因此如果您删除该部分(例如,nativeUpdate()在您的应用程序中覆盖该方法,HistoryImpl则在状态更改时将永远不会收到通知。

我看到的解决方案是用你自己的基于window.history.pushState()HTML5 API 覆盖 GWT 中的历史机制。现代浏览器(不是 IE9)支持它。

使用推送状态,您可以通过或不更改 url 来更改浏览器的状态。

在 gitHub有一个基于pushState的 History 实现。Johannes Barop 在 2013 年的 gwt-meetup 上介绍了这个项目,视频还不可用(不过几天后就会出现)。我认为它没有实现您不更改 url 的边缘情况,但可能应该很容易添加,或者在 github 上询问他。

于 2013-06-13T14:28:27.643 回答