HTML5可以与外围设备(如扫描仪和信用卡读卡器)进行通信吗?

前端之家收集整理的这篇文章主要介绍了HTML5可以与外围设备(如扫描仪和信用卡读卡器)进行通信吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的公司编写的软件安装在客户端计算机上执行销售点交易。软件与各种外部外设(收据打印机,条形码扫描器,信用卡读卡器等)接口。我们使用我们在Visual Studio中使用Microsoft OPOS库创建的winforms应用程序,该应用程序又与我们的云服务器(即客户端 – 服务器模型)通信。

在这个模型中有明显的低效率,主要是更新。我正在研究其他方式通过网络与这些外围设备通信,最好通过网络浏览器。据我所知,Java是唯一能够做到我们正在寻找的技术(通过applet),我认为Adobe Flash也可以(通过Air平台)。这些都是可行的,但不是优选的,因为我们想在支持Web的移动设备上运行我们的软件。

有没有人有建议其他方式通过网络与外部设备通信?

解决方法

不是那么简单…还没有,但种类

所以答案是,像生活中的大多数其他事情,复杂。如果你想要“简单”的答案,它是肯定的,不,是的和是的。容易理解吗?

更新2014年11月3日:从原来的帖子已经过了两年多,但答案现在大部分是一样的。然而,我们在几个领域更接近于您的初始目标。

更新2016年12月28日:另一对夫妇年了,另一个更新。这一个将更多地集中在两个新的发展比任何其他。请参阅“完整设备API”下的新“WebUSB& Web蓝牙”部分。但答案保持不变。

所以,会有一些方法解决这个问题,我会倒退。也就是说,我将从你想要的,它的样子,为什么你不能拥有它开始。然后我会努力你的东西,为什么你可能不想要它。但首先,一些背景。

背景

HTML5规范已进入“推荐”状态。这意味着HTML5是为它的外观设置的。但是,我将使用HTML5,以同样的方式,每个营销人员在世界上决定是最好的。也就是说,我不会谈论HTML。好吧,我会的,只要你会从一个HTML页面使用它,但不是真的。我实际讨论的是JavaScript(JS)和that’s a horse of a different color.但对于所有的意图和目的,我们把它都放在同一标题下的HTML5,现在已决定意味着“闪亮和新”。

此外,我正在讨论的项目将有所不同的支持。一些是非常依赖于浏览器的项目(如Chromium特定的实现),有些是更多的标准驱动的项目,可能没有实现或实验它们的浏览器。我会尝试区分两者,因为我一起去。

完整设备API

状态:传入,但未准备好

能够从浏览器访问设备正在缓慢但稳定的进步。现在,许多现代浏览器可以访问一些更常见的设备,如the cameragamepads,但它们都是高级API。 Browser vendorsthe standards groups和许多涉及网络的公司都试图使webapps与您的本地应用程序一样强大。

但你正在寻找的API仍在进行中,有一个方法。对于你的特殊情况,以及将webapp连接到大多数设备的更一般情况,我们还有几年的时间可以使用。如果你想看看什么真棒的东西在这个领域,这里只是一些选项可以帮助你直接:

> Web Near Field Communication (NFC) API
这不幸可能现在在水中死了。但是它似乎最初的一些人在W3C(大多是英特尔看起来)看着添加一个NFC API的网络。
> Media Capture Streams
WebRTC组正在编程访问媒体流,如相机,这将允许集成像条码扫描或其他功能的东西。这已达到CR状态,为available in browsers,但其自身的帮助较少。
> Web Bluetooth
如果您拥有支持蓝牙功能的工具,此API可以帮助您通过能够监听和连接的计算机和设备与他们进行连接。目前的主要驱动因素似乎是Chrome团队,包括实验性实施,但我不会考虑它随时随地使用(请参阅“WebUSB& Web蓝牙”部分)。
> WebUSB
这将允许完全访问低级USB信息,包括列出设备并与其交互。与Web BlueTooth相同,这似乎是目前的Chrome宠物项目,但我也不会依赖它(参见“WebUSB& Web蓝牙”部分)。
> Network Service Discovery
如果您在网络上有其他设备或项目广播和使用HTTP,此API将允许您发现和与这些服务进行交互。没有浏览器实现,但它是在W3C的工作草案。

最初,Mozilla正在推动其中的一些,因为Boot2Gecko(或Firefox OS)。然而,随着该项目正式取消,我们在这些领域现在没有看到很多进步。

然而,Chrome团队的成员似乎已经决定开始,并开始不仅努力这些,而是​​把它们放在浏览器。这导致我们…

WebUSB& Web蓝牙

Like sausages,it’s better to not know how Web Standards are made
-Abraham Lincoln (probably)

在这一领域有一点点嗡嗡声,因为它看起来像Chrome团队在这些作为实验功能,并开发了自己的规范。这是伟大的!也许不是你的方式,你希望。

每个浏览器供应商和W3C贡献者组都有自己的风格,并以自己的方式对规范做出贡献。结果通常是一个相当合理的规范,浏览器已同意。但从无到有的东西是…凌乱。真正的凌乱。这是一个相当一个过程很多次。它并不总是导致一个好的规范(是的,我说的是弗洛里安妥协…),但即使它,它需要一段时间。

但是,似乎谷歌自己开发了这个版本的规范。而且,根据我的经验,Google的规范方法总是有点…好…将我的个人意见放在一边,我们会说“gung-ho”。他们往往只是潜水深入到底。这似乎是他们在这里做的。

我非常怀疑这些规范或实现将看起来像这样当他们成为标准。这没有什么错。这是过程的一部分。但我不会依靠这个实现或开发任何代码或产品反对它。这是一个前所未有的功能在网络上,所有的浏览器供应商都想在这个大的说话。

也就是说,这实际上是好的。谷歌经常做的事情(更好或更坏)与这样的情况是强制谈话,它可以推动事情。而且在浏览器中提供一个功能,即使是一个实验功能,也可以根据需求提高热量。因此,我们可能会在这一领域看到更多的进展。

PhoneGap Apache Cordova。你知道,为你的手机

状态:不完整的功能和电话

Apache Cordova,之前是Adobe PhoneGap,是一种以HTML,CSS和JS编写程序的方法,它允许您访问电话等较低级别的功能,并可跨设备编译。这将是一种实现您的程序的方式,但它将是一个电话应用程序,不一定是一个桌面。一个选择,考虑,我想到的东西我会提到。

Cordova已经实现了一些上述功能,但没有一些更强大的像NFC或蓝牙。

Native-App解决方案(适用于Windows 8)

状态:可能,但操作系统和桌面应用程序

Windows 8提供了在HTML和JS中构建应用程序的能力。这将允许您通过their API轻松访问操作系统上的较低级别的功能。从它的外观,它是相当广泛,你可以做很多。但是,您提到了跨OS支持,这显然限制了一个操作系统。

它是如此闪光!

状态:死亡/死亡,不可能作为一个网络应用程序

Flash将不能通过Web直接访问系统。您可以创建一个AIR应用程序,但这将失败的基于Web的目的。此外,移动设备上的Flash支持,以及在网络上看起来,正在减少。

NodeJS

状态:可能有点痛苦,只有可能作为一个桌面应用程序

NodeJS和JS应用程序在过去几年一直是一个热门话题。我没有在我原来的帖子中讨论它,因为我觉得它还不是那里。然而,事情已经发展,它更接近于准备好这种事情,并有越来越多的用户群的支持和力量。也就是说,对于你的特殊情况,我不建议使用它。它必须在用户计算机上是本地的,并且由于NodeJS(以及类似的引擎)在目前的情况,它将需要大量额外的配置和设置,这会使事情复杂一点。

所以你可以使用HTML,CSS和JS与NodeJS或类似的引擎构建一个应用程序,并具有低级别的访问你所需要的,但它必须是本地的,它需要更多的工作,我相信你想做的每一个您希望为客户安装的时间。

…现在我在哪里?

那么,这会离开我们呢?好吧,简单:如果你想要一个单一的语言/一组代码作为你的代码库,HTML / CSS / JS不是一个伟大的选择…但。但他们可能有一天。现在,您的选择仅限于您认为最适合您的客户的选择。 Java是你列出的一个稳定的选项,但显然有自己的缺点。随着网络的发展,我认为我们会看到许多非常酷的东西从新的功能,但我们有一个方法去。

更多阅读:

> 70014
> HTML5 Apps on Windows 8
> Wikipedia list of projects built using JS

原文链接:https://www.f2er.com/html5/169992.html

猜你在找的HTML5相关文章