【问题标题】:Java : how to communicate from localhost Java desktop application to Java Applet?Java:如何从本地 Java 桌面应用程序与 Java Applet 通信?
【发布时间】:2023-03-28 12:21:02
【问题描述】:

我想知道是否有办法让 Java 桌面应用程序与小程序通信,以便从桌面应用程序(通过小程序)调用 Javascript 函数。

上下文:

一方面,我有一个 ExtJS 应用程序(全 AJAX),它位于远程服务器上。 另一方面,一个桌面 Java 应用程序(netbeans 应用程序),它是常驻的(确实如此)。

我会做什么:

每次使用其中一个应用程序时,它都会向另一个应用程序发送事件和数据。

经过一些研究,我看到了有趣的帖子herehere,以及how to communicate between applets 上的答案(另见here)。

问题不在于如何从小程序跨域到 destktop 应用程序(参见over therehere),而是如开头所说的如何从桌面 java 应用程序与 javascript 进行通信。

备注

webapp (ExtJS) 基于远程服务器,applet 也是如此。我可以在本地找到小程序,但这意味着要部署本地网络服务器。

桌面应用很重,无法转成applet格式。

我放了“reverse-AJAX”标签,因为它是我要做的全局概念。

如果这一切都可以在没有小程序的情况下实现(请不要使用 Flash),那也没关系。

【问题讨论】:

  • 要从浏览器小程序调用javascript,您需要使用LiveConnect。为了从桌面应用程序“触发事件”到小程序,小程序需要使用ServerSocket 连接到桌面应用程序,并且您需要提出一个事件传输协议。
  • @bmorris591 似乎是个好方法,谢谢!你能回答一下吗?

标签: java applet cross-domain desktop-application reverse-ajax


【解决方案1】:

为了在浏览器中从 Java 小程序调用 javascript 方法,您需要使用 Netscape LiveConnect API,有一些示例 here
基本上,这是一个由浏览器本地实现的 API,允许 Java 小程序访问浏览器的 javascript 引擎。

完成排序后,您需要从桌面应用程序调用小程序中的方法,这有点棘手。最简单的方法可能是使用 Enum 交换序列化实例来描述事件类型。

有一个使用套接字进行通信的例子here

【讨论】:

  • 好的,感谢您的回答和链接。你明白了:)
猜你喜欢
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多