Dan*_*abo 65 peripherals html5
我的公司编写安装在客户端计算机上的软件来执行销售点交易.该软件可与各种外围设备(收据打印机,条形码扫描仪,信用卡读卡器等)连接.我们使用Microsoft OPOS库在Visual Studio中创建的WinForms应用程序执行此操作,后者又与我们的云服务器(客户端 - 服务器模型)进行通信.
该模型明显效率低下,主要是更新.我正在研究通过网络与这些外围设备进行通信的其他方式,最好是通过网络浏览器.据我所知,Java是唯一可以做我们正在寻找的技术之一(通过applet),我也认为Adobe Flash也可以(通过Air平台).这些是可行的,但不是优选的,因为我们希望在支持Web的移动设备上运行我们的软件.
有没有人建议通过网络与外围设备进行通信的其他方式?
Lov*_*ing 84
UPDATE(2019年1月16日):该凭证管理API已经公布.它目前仅支持Chrome和Opera,但它看起来很有前途.Google Developers撰写了一篇详细阐述该规范的文章.
更新(2016年12月28日):又过了几年,另一次更新.这个将更加关注两个新的发展,而不是其他任何事情.请参阅"完整设备API"下的新"WebUSB和Web蓝牙"部分.但答案仍然是一样的.
更新(2014年11月3日):距离最初的帖子已经过去了两年多,但答案现在基本保持不变.但是,我们在几个方面更接近您的原始目标.
原始答案:
有很多方法可以解决这个问题.
HTML5规范已进入"推荐"状态.这意味着HTML5几乎就是它的外观.但是,我将使用HTML5,就像世界上每个营销人员都认为最好的一样.也就是说,我不会谈论HTML.好吧,我会,你将从HTML页面中使用它,但不是真的.我真正要讨论的是JavaScript(JS),这是一匹不同颜色的马.但是出于所有意图和目的,我们将它们全部置于与HTML5相同的标题下,HTML5现在被认为意味着"闪亮和新颖".
此外,我正在讨论的项目将有所不同.有些是非常依赖浏览器的项目(比如Chromium特定的实现),有些是更多标准驱动的项目,可能没有浏览器实现或试验它们.我会尝试区分这两者.
状态:传入,但尚未准备好
能够从浏览器访问设备正在缓慢但稳定地进行.现在,许多现代浏览器可以访问一些更常见的设备,如相机或游戏手柄,但它们都是高级API.浏览器供应商,标准组织以及许多参与网络的公司都试图使Web应用程序与本地应用程序一样强大.
但是您正在寻找的API仍在进行中并且还有很长的路要走.对于您的特定情况,以及将您的webapp连接到大多数设备的更一般情况,我们距离我们可以使用的东西还有几年的时间.如果你想看看该领域出现了什么令人敬畏的事情,这里只是一些可以直接帮助你的项目:
最初,由于Boot2Gecko(或Firefox OS),Mozilla正在推动其中的一些进展.然而,随着该项目的正式取消,我们现在在这些领域并没有看到他们取得多大进展.
然而,Chrome团队的成员似乎决定潜入并开始不仅努力实现这些目标,而是将其置于浏览器中.这导致我们......
像香肠一样,最好不要知道Web标准是如何制作的
--Abraham Lincoln(可能)
在这个领域有一点点嗡嗡声,因为看起来Chrome团队将这些作为实验性功能隐藏起来,并为它开发了自己的规范.哪个好极了!可能不是你希望的方式.
每个浏览器供应商和W3C贡献者组都有自己的风格,并以自己的方式为规范做出贡献.结果通常是浏览器已经同意的相当不错的规范.但是,从无到有,到处都是......凌乱.真的很乱.并且很多次都是一个过程.它并不总能产生一个好的规范(是的,我在谈论弗洛里安的妥协......)但即使它确实如此,也需要一段时间.
然而,似乎谷歌自己开发了这个版本的规范.而且,根据我的经验,Google对规范的处理方式总是有点......好吧......把我的个人观点放在一边我们会说"gung-ho".他们倾向于直接潜入深渊.这似乎是他们在这里所做的.
我非常怀疑这些规范或实现在它们成为标准时会看起来像这样.这并没有错.这是这个过程的一部分.但我不会依赖此实现或针对它开发任何代码或产品.这是网络上前所未有的功能,所有浏览器供应商都希望在这方面有很大的发言权.
那就是说,这实际上是好的.谷歌经常做的事情之一(无论好坏)在这种情况下强迫对话,它可以推动事情发展.并且在浏览器中提供了一项功能,即使是实验性功能,也可以满足对它的需求.所以我们很快就会看到这个领域取得更多进展.
状态:功能不全,仅限电话
Apache的科尔多瓦,以前的Adobe PhoneGap的,是写你的HTML,CSS,JS和程序,可以让你的东西进入下级功能,例如电话和跨设备编译的方式.这是执行程序的方式,但它是一个手机应用程序,未必是桌面之一.一个可以考虑的选项,我想我会提到的.
科尔多瓦实现了几个已经上述功能,但不具备一些较有实力的像NFC或蓝牙.
状态:可能,但特定于操作系统和桌面应用
Windows 8提供了使用HTML和JS构建应用程序的功能.这将允许您通过其API轻松访问操作系统上的低级功能.从它的外观来看,它非常广泛,你可以做很多事情.但是,您提到了跨操作系统支持,这显然限制了您使用一个操作系统.
状态:死亡/死亡,不可能作为网络应用程序
Flash无法通过网络直接访问系统.你可以创建一个AIR应用程序,但将那种战胜它基于网络的有目的.此外,移动设备上的Flash支持似乎正在下降.
状态:可能有点痛苦,只能用作桌面应用程序
NodeJS和JS应用程序在过去几年中一直是一个热门话题.我没有在原帖中讨论它,因为我觉得它还没有完全存在.然而,事情已经取得了进展,并且更接近为这种事做好准备,并且拥有不断增长的用户群的支持和力量.也就是说,对于您的具体情况,我不建议使用它.它必须是用户机器上的本地,并且由于NodeJS(和类似引擎)目前的方式,它需要大量额外的配置和设置,这会使事情变得复杂.
所以,你可以使用HTML,CSS和JS用或的NodeJS类似引擎建立一个应用程序,并有你所需要的低级别的访问,但它必须是本地的,并且它会采取更多的工作比我敢肯定,你想要做的每您希望为客户安装它的时间.
那么我们离开了哪里呢?好吧,简单:如果你想要一种语言/一组代码作为你的代码库,HTML/CSS/JS不是一个很好的选择...... 但有一天他们可能会.目前,您的选择仅限于您认为最适合您的客户的选择.Java是您列出的稳定选项,但显然有其自身的缺点.随着网络的发展,我认为我们会看到很多非常酷的东西来自新功能,但我们还有很长的路要走.
bob*_*bee 10
这是可能的,但必须间接完成.理论上,您可以用低级语言编写套接字服务器,它获取I/O,并通过套接字发送I/O(我猜中继).HTML5使用WebSockets或一些等效的与此套接字服务器通信.
| 归档时间: |
|
| 查看次数: |
56894 次 |
| 最近记录: |