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