我们的Web应用程序基于mvp4g框架。为了解释我的情况,我将使用以下符号:
A, B - two different gwt modules
presenterA, viewA - presenter and view pair in module A
viewA contains an iframe and a button along with other UI components
presenterB, viewB - presenter and view pair in module B
eventBusA - an eventBus in A with event handler in presenterA
eventBusB - an eventBus in B with event handler in presenterB
应用程序流程从加载A
开始。系统会显示viewA
,其中包含一个按钮和一个iframe,点击iframe中的B
加载模块,通过调用网址同时隐藏viewA
来自有效查看。因此它仍然在后台活跃。 B
是一个单独的模块(A
和B
之间没有子父关系)。它会加载viewB
,在viewB
点击一下按钮后,我想再次转到eventBusA
中的某个活动,因为我想将viewA
的状态从隐藏更改为可见。但eventBusA
或presenterB
无法访问eventBusB
。
我尝试过以下无效的方法:
请帮助我,因为我被困在模块间通信中。
感谢。
答案 0 :(得分:0)
您的问题是,模块B必须向模块A发送推送通知。没有现成的解决方案。
最佳解决方案是,发送URL以再次启动模块A并使用放置模式恢复模块A的应用程序状态。
因此,模块A必须向模块B发送令牌(历史令牌)。模块B必须保存令牌,如果模块B将控制权交还给模块A,则必须调用模块A的URL和使用令牌作为#-parameter。看一下mvp4g的历史记录。