好的,这是一个复杂的问题,我整个星期都在头疼。
我正在创建一个自助服务系统,它允许人们通过条形码或智能卡来识别自己,然后执行任意操作。我在每台机器上本地运行一个 Tomcat 应用程序容器来提供页面并连接到所需的外部资源。它还允许我提供网页,然后我可以使用这些网页在屏幕上显示内容。
我选择 HTML 作为一种显示技术,因为它为事物的外观提供了很大的自由度。该程序还涉及大量 Javascript 与客户和硬件交互(通过 RESTful API)。我选择 Javascript 是因为它是 HTML 的自然补充,并且受到所有现代浏览器的支持。
目前,该系统正在多个站点进行测试,一切似乎都正常。我在 Chrome 的信息亭模式下运行它。这对我很有帮助,但也有很多缺点。这是问题开始的地方。;-)
首先,我害怕 Chrome 的自动更新最终会破坏我的 Javascript 代码。其次,我运行一个小的 Chrome 插件来读取智能卡号码,每次工作站错误关闭时,Chrome 的用户配置文件都会损坏,需要重新设置扩展。我可以通过关闭自动更新轻松解决第一个问题,但这会使我的安装过程复杂化。
实际上,必须安装任何浏览器会使我的安装过程复杂化。
我确实考虑过使用 Internet Explorer,因为它基本上无处不在,但是有三个主要版本,我不确定这是否是一个好方法。我的 Javascript 非常复杂,让它在旧版本上运行会很痛苦。甚至没有提到必须为我的智能卡编写 ActiveX 组件。
这就是为什么我着手制作一个全屏运行并且可以读取智能卡号码的小型浏览器包装器。这也有缺点。我使用 Qt:Qt 的 QtWebkit 重达 10MB,它为我的应用程序添加了另外一些依赖项。
真的感觉我必须从三个都有缺点的选项中进行选择。这确实是我在编写整个程序之前应该调查的事情。我想这是一个很好的教训。
关于问题:
有没有摆脱这种情况的无痛方法?(可能不是)
有没有我可以依赖的浏览器,而无需向我的项目添加数十兆字节?
您还有其他选择吗?
如果您看不到其他出路,您会选择哪个选项?