作为一个实际实现了针对 kiosk 环境的 Flash 应用程序的人,我强烈建议不要使用它,原因如下:
内存管理不足以让应用程序一次运行数天/数周无人看管。它会泄漏内存,您最终将不得不重新启动它。只需 Google 搜索“闪存泄漏”就可以了解它存在多少问题。据说他们在最新版本中改进了内存管理,但老实说,Flash 主要针对浏览器,用户在与 Flash 选项卡/窗口交互几分钟后会关闭它,所以他们并没有花费太多很多时间优化它的内存使用。
错误处理不够健壮,无法处理扩展的运行环境。如果您的应用由于任何原因抛出错误,播放器基本上会完全停止,直到您重新启动它。由于(3),写入错误日志也比应有的困难。
您在 Flash 环境中处于沙盒状态,无法直接访问读卡器或其他外部设备等内容,也无法写入系统。使用 AIR 可能会帮助您访问文件系统,但仅此而已。如果您想访问外部设备,您必须编写一个代理,该代理位于客户端并通过套接字将相关数据发送到 Flash。如果您确实决定使用套接字与您的 Flash 客户端进行通信,请准备好大惊小怪地解读 Flash 播放器的安全策略。
基本上,Flash 是为与信息亭完全不同的环境而构建的,因此不太适合该任务。我还建议避免使用基于 Web 的界面,因为与访问硬件设备相关的困难相同。哦,看在上帝的份上,不要在 Linux 上运行 Flash。Linux Flash 播放器比 Windows 版本落后 234234 英里,会让您头疼不已。
至于与读卡器的通信,通常您通过 USB 与读卡器连接,读卡器可以设置为“键盘楔”模式或 HID 模式。在键盘模式下,读卡器将读取刷卡并输出包含刷卡内容的纯文本字符串,就好像它是键盘一样,您需要解析该字符串以获取所需的数据。HID 模式更简洁一些,您可以通过读取 USB 设备的滑动来与之交互。
在您列出的选项中,您最好的选择(不幸的是)可能是编写某种可以在 24/7 环境中运行的 Java 或 .NET 应用程序。如果您需要访问打印机或其他硬件设备(例如自动打印收据),那么 Java 和 .NET 对 OPOS 标准的支持非常好,这是与收据打印机对话的标准接口。就 Linux 与 Windows 而言,我已经看到两者都成功使用了。
顺便说一句,如果您的应用程序正在处理信用卡数据,请不要忘记 PCI 合规性:)。