Javascript 从web浏览器调用客户端应用程序中的方法和访问属性

Javascript 从web浏览器调用客户端应用程序中的方法和访问属性,javascript,java,client-side,Javascript,Java,Client Side,我们有一个解决方案,可以处理Windows上的设备,并希望通过使用javascript从WebBrowser(Edge、chrome、firefox)调用其中的某些组件,因此这将在客户端完成。 我们过去常常使用activex来实现这一点,但由于这项技术几乎只适用于Iexplorer,而且现在现代浏览器已经过时了,所以它不再是一种选择。 我们的解决方案是基于Java的,还有一些C# 有人知道怎么做吗?非常感谢 实现这一点的唯一方法是创建一个公开组件的web服务,然后从JavaScript向该服务发

我们有一个解决方案,可以处理Windows上的设备,并希望通过使用javascript从WebBrowser(Edge、chrome、firefox)调用其中的某些组件,因此这将在客户端完成。 我们过去常常使用activex来实现这一点,但由于这项技术几乎只适用于Iexplorer,而且现在现代浏览器已经过时了,所以它不再是一种选择。 我们的解决方案是基于Java的,还有一些C#


有人知道怎么做吗?非常感谢

实现这一点的唯一方法是创建一个公开组件的web服务,然后从JavaScript向该服务发出web请求。这是任何现代浏览器都能做到的。

我们正在研究另一种似乎可行的操作,使用WebSocket似乎比使用本机消息更可靠,因为最后一种操作过于依赖于浏览器版本,并且需要为至少三种浏览器创建扩展,edge,chrome和firefox,如果这些浏览器发生了变化,可能会破坏扩展。而使用WebSocket则不会发生这种情况


有人做过类似的事情吗?

事实是你需要一座桥。这可以是所有能够访问设备的语言。C语言C++ + java…如果没有任何类型的api在后台,浏览器和javascript无法直接处理它。要访问api,您只需按照我们使用activex的老方法使用ajaxSo,这就是桥?使用activex,我们在windows注册表中有一些条目(类),我们所要做的就是在javascript中引用这些类并进行所需的调用。是的,您在浏览器中使用activex作为插件,这是连接硬件的桥梁。但它已被弃用;)你知道我可以使用桥接技术向所有现代浏览器公开我的组件吗?抱歉,使用搜索引擎查找此答案这意味着web服务将托管在我们需要它的每台机器上,对吗?不,最好的解决方案是使用单个web服务。但是由于web服务必须处理连接到每台机器的设备,我相信web服务需要安装在每台机器上。