只是分享一些信息,希望它对社区有用。
由于各种浏览器停止支持插件,Applet 的可用性已经下降。Google 已决定停止支持 NPAPI 插件,EDGE 不支持插件,Firefox 也不鼓励使用插件,Mozilla 可能会效仿该套件。
我们开发的应用程序之一需要使用小程序,原因如下
- 能够访问连接到计算设备的端口和外围设备
- 能够与 Web 应用程序交换信息(通过 JavaScript)
- 系统管理员不参与安装和维护
- 应用程序必须从浏览器中启动
前面描述的情况使我们将 Java Web Start (JWS) 技术视为 Applet 的潜在替代品。然而,由于无法与 Web 应用程序通信,JWS 提出了自己的一系列挑战。
我们现有的解决方案(Applet)将从 Web 应用程序中获取唯一标识符;通过串口读取数据;并将数据连同先前收到的唯一标识符一起提交到 Web 服务器。重写独立应用程序不是一种选择,因为用户社区与典型的 B2C 用户社区一样大。教育如此庞大的社区以不同的方式使用该应用程序需要大量的努力和支持人员。开发一个新的应用程序也需要在产品生命周期方面付出巨大的努力。
适配 JWS 的一个优势是重用为 Applet 开发的代码。但是,JWS 不提供借助 Applet-JavaScript 桥在 Applet 和 Web 应用程序之间交换信息的选项。
这就是我们适应 JWS 的方式
用户将访问引用 JNLP 文件的网页,该文件包含启动 JWS 应用程序所需的详细信息
Web 应用程序将通过 JNLP 文件向 JWS 应用程序提供唯一标识符
此时,Web 应用程序将开始长轮询/反向 AJAX。这是必要的,因为我们必须通过 Web 应用程序将成功/失败结果通知给最终用户
从串行端口读取信息后,JWS 应用程序将执行 HTTP POST 并将读数与 UID 作为参数一起发送
服务器将保存结果并完成长轮询/反向 AJAX 调用;通知 Web 应用程序操作的状态
施里达尔