2013-04-18 148 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

相關問題