2013-04-18 80 views
0

概述:什么是实现一个Qwebview沟通的最佳方式?

我想创建一个模仿WebIntents-like功能的PoC应用程序。 因此,在我的Qt应用程序中,我创建了两个QWebviews,启动两个不同的WebApp。现在,让我们称他们为应用程式A和B.

场景:

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

问题:控制是APPB的情况下,我应该如何在APPA web视图沟通 - 即APPB问APPA:哎APPA ,请给我你提取的数据?

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

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

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

回答

0

你就不能emit一些从APPB排序signal,基本上说,“嘿,我取完我的数据,如果有人想它”还是我失去了一些东西?这将发生在AppB::fetchData()的末尾。

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

+0

对不起,我的问题有一个错字,我刚刚解决了这个问题。 – Karthik

+0

AppB不需要这样的信号。因为它是一个概念验证。我没有让AppA发出“数据准备就绪”的“完成抓取”类型的信号。因此,用户(即我)将点击AppB上的按钮以通过QT获取数据。这将在看到AppA的QWebView填充了获取的数据后完成。 – Karthik

+0

因此,在这种情况下,AppB需要获取AppA的WebView的句柄并调用方法AppB :: fetchData(在QT-CPP中)。这个方法反过来需要调用AppB的QWebView的JavaScript代码,它包含数据!我不完全确定如何实现这一点。 – Karthik

相关问题