簡體   English   中英

javascript與其托管java或c++應用程序之間的通信

[英]Communication between javascript and its hosting java or c++ application

我試圖找出是否有標准或推薦的方式從 javascript 到嵌入瀏覽器小部件的應用程序進行通信,反之亦然。 托管應用程序可以用 java 或 c++ 編寫,並可以在 Windows 和 Unix 平台上運行,但 javascript 將在兩個客戶端之間共享。

到目前為止,我已經讀到:

  • window.external(這似乎是 IE 特定的,因此它不適用於 Unix。)
  • LiveConnect(這似乎是 java 和 mozilla 特定的,因此它不適用於基於 IE 或 c++ 的應用程序。)
  • SWT 的瀏覽器小部件具有部分這種功能,但這將是一個僅限 Java 的解決方案。

還有哪些其他選擇?

謝謝! 夏姆

我們有一個 VB6 應用程序托管 Microsoft 的WebBrowser object (IE)。 我們使用了一個簡單的 URL 攔截機制來促進瀏覽器和托管應用程序之間的通信。 由於瀏覽器控件有一個之前的導航界面,我們可以拉出 URL 並檢查它的命令,然后取消導航事件(因為它是針對托管應用程序的)或讓它通過(因為它是一個普通的 URL) .

我們在 Javascript 或 HTML 鏈接標簽中使用了類似app://commandName?arg1=val&arg2=val的內容。

然后在瀏覽器的 BeforeNavigate 事件中,我們檢查 url 中的app://如果我們得到它,我們就知道瀏覽器正在向父應用程序發送消息。

簡單但有效(無論如何滿足我們的需要)。

編輯

還應該提到的是,大多數嵌入式瀏覽器也有操作 DOM 的機制。 請記住,您應該能夠隨意提取信息(HTML 節點)和注入信息。

JavaScript 有XMLHttpRequest API,這使得向服務器發送數據和從服務器檢索數據成為可能。 將此 API 與格式為 XML 或 JSON 的消息一起使用被指定為AJAX

AJAX 可用於實現您給出的示例,HTML/javascript 中的樹節點在擴展時從服務器檢索子節點列表。 請注意,使用 AJAX 時,服務器可以用任何語言編寫(C、Java、Python、Ruby 等)。

我建議你看一下AJAX。在你對AJAX有了很好的了解之后,你可以稍微了解一下web的服務 web 服務是通過 WEB 以任意編程語言開發的 2 個應用程序的通信方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM