使用dll进入html5页面

时间:2017-10-20 21:54:52

标签: html5 web-services dll web-applications

我正面临一个让我心烦意乱的问题。我需要将外部设备连接到我的html5网络应用程序,但我不知道该怎么做。不幸的是,与此设备通信的唯一方法是使用供应商提供的dll(可以通过以太网本身与设备进行迭代)。我知道一种方法是通过实现例如asp webservice客户端,但我不想开发另一个"应用程序&#34 ;;有没有办法直接从我的网页上做到这一点?

谢谢大家, 问候。

编辑: 我的webapp是使用jquery编写的零售前端html5应用程序,而不是仅在chrome上运行(因为脱机缓存/ websql数据库)。用户在需要时需要将数据发送到连接的外部设备(信用卡支付系统)并接收答案:通信的唯一方法是使用供应商dll。

1 个答案:

答案 0 :(得分:0)

我可以想象一些不同的方法来实现目标:

这里提到ActiveX和NPAPI插件 - 那些非常过时,你甚至不需要打开那个链接

[过时的答案] Call DLL methods from Javascript

其他一些方法的集合:

[Firefox相关] How to call user32.dll methods from javascript

[较新的答案] Call Function from DLL loaded in front-end javascript (load dll in clientside javascript)

[仅限IE - ActiveX] https://msdn.microsoft.com/de-de/library/7sw4ddf8(v=vs.94).aspx

最后但并非最不重要的是我最喜欢和最先进的方法:开发一个本地运行的系统托盘应用程序或监听端口的Windows服务,允许跨域调用和触发器使用javascript中的ajax调用。

[编辑]最后一个选项也是跨平台兼容的,非常便携。为了解释,这个"在客户端运行" Windows服务可以侦听127.0.0.1:1234并且应该只将Access-Control-Allow-Origin:*添加到它发送的任何响应中,这样你就可以使用对127.0.0.1:1234的ajax调用来调用它。您将其打包并分发到可下载的安装程序包中。在您的javascript中,您在初始化时执行测试api调用,以查看该软件包是否已安装且可用。如果没有,则显示下载链接。 如果作为tasktray app运行,你另外提供一个"我已经拥有它,只需启动它"按钮并在注册表中注册应用程序处理程序(这是另一个主题)

最后,如果你不想使用任何类型的编译应用程序,选项的数量会很快消失,你需要解释为什么你只想使用javascript(例如它只是因为你不知道任何其他语言左右)