实现qwebview间通信的最佳方式是什么?

时间:2013-04-18 18:36:59

标签: qt qwebview

概述:

我正在尝试创建一个模仿类似WebIntents功能的PoC应用程序。 因此,在我的Qt应用程序中,我创建了两个QWebviews,启动了两个不同的webApp。现在让我们称他们为应用程序A和B.

情景:

  • 主应用程序创建两个QWebView,每个都启动一个应用程序,即AppA,AppB。
  • App A被编程为自动通过AJAX获取一些数据。
  • App B也需要部分数据。 AppB只显示一个名为的按钮(HTML)。 注意:既然,AppA已经有了这个信息,我希望AppB调用一个JavaScript API,当启动QWebView时,它通过addToJavaScriptWindowObject()方法调用注入到它的(appB)DOM中。
  • App-A完成了Ajax Call并在其WebView中指示完成。
  • 用户点击AppB中的按钮
  • App B调用JavaScript API,即fetcData({source:“AppA”);
  • 现在控制权属于QT世界:

问题:控件是在AppB的上下文中,我应该如何与AppA中的WebView进行通信 - 即AppB询问AppA:嘿,AppA,请告诉我你提取的数据?

信号和插槽可以帮助我吗?或者我应该使用其他形式的IPC。

我读了这页:http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html,但我仍然没有得到解决问题的提示。

另一个相关的问题:QWebViews是在他们自己的线程中创建的吗?

1 个答案:

答案 0 :(得分:0)

你不能只是emit来自AppB的某种signal基本上说,“嘿,如果有人想要我完成了我的数据提取”或者我错过了什么?这将发生在AppB::fetchData()的末尾。

之后您需要做的就是将任何感兴趣的对象连接到该信号。