您在Web应用程序中使用什么跨浏览器技术来操作客户端计算机?

时间:2015-07-09 11:23:10

标签: google-chrome web-applications applet java-web-start npapi

(我对Google Chrome的改进存在问题,这会降低对我当前解决方案的支持。)

我在将桌面系统移动到Intranet Web应用程序的项目上工作。

关键要求是:

  • 将桌面系统移至Web应用程序
  • 在webapp中重现桌面系统中的每个功能

虽然95%的工作需要创建临时Web应用程序,但有一件事是非标准的:我的应用程序必须在客户端计算机上执行某些操作。其中包括:

  • 与图书馆连接
  • 推出桌面应用
  • 背景中的文件操作

示例场景是将我的系统与实验室中的某台机器集成。我必须通过DLL将我的Web应用程序与客户端计算机上的驱动程序集成(桌面应用程序执行此操作,因此我的应用程序也必须这样做。)

理论上桌面操作的场景可能会有所不同,我只想实现一些能够处理所有"客户端机器"桌面应用程序已完成的工作,因此无需在每个方案上工作(但当然应该测试每个方案)。

我的解决方案是Java Applet。有效。但随后谷歌Chrome决定放弃对NPAPI插件的支持,因此9月份的Java插件(以及我的applet)不再受支持(http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html)。

所以我的另一个解决方案是Java Web Start。有用。但现在谷歌Chrome决定放弃对外部协议后台操作的支持(https://code.google.com/p/chromium/issues/detail?id=348640),因此从谷歌Chrome 45我的Java Web Start解决方案不受支持。

(以上解决方案均适用于Firefox和IE。)

问题: 我可以使用哪些其他技术通过我的网络应用与客户端计算机进行交互?

其他评论:

  • 我不愿意编写自己的PPAPI插件或Chrome扩展程序 - 我更喜欢在所有主流浏览器上使用的解决方案。
  • 我知道StackOverflow社区不喜欢有关技术的讨论,所以请专注于描述我的问题的可能解决方案。

1 个答案:

答案 0 :(得分:0)

由于我们需要通过JNI-> DLL连接/访问电子设备,我们遇到了类似的问题。目前唯一可行的技术是applet。期。 (甚至这很棘手,因为浏览器/ java版本/操作系统的某些组合不起作用或有问题,但这是另一个故事......)

有一些像HTLM5,JScript这样的网络技术可以取代小程序的某些功能,但是在某些情况下(比如你的)没有现有的替代方案 - 而且你给它们命名了一些:

  • 连接* .dll,* .so等
  • 等库
  • 文件操作
  • 启动应用程序

跨浏览器和操作系统进行此操作!

解决方案?

  1. 告诉您的用户,某些浏览器无法使用(例如Chrome和 Opera Next)
  2. 为每个浏览器编写单独的插件(可能超出预算; - )
  3. 您是否考虑过以可执行文件的形式编写独立应用程序?用户必须下载并运行它,例如还需要安装java或plugins。但是那时存在安全方面(下载并执行可执行文件) - 当然不是一个简单的决定
  4. 看一下FireBreath 2 - (只是在一些帖子中读到它,但没有尝试过)
  5. 关于此主题的讨论很多,请阅读: