WebHID,WebNFC和WebUSB开拓了新的路径,能够与用户用于Web应用程序的设施硬件进行交互。

你是否遇到过须要拜访用户的设施硬件,并只为该性能实现一个桌面应用程序?你并不孤独。直到最近,实现上述目标的形式还很牵强和麻烦。然而,随着最近Chrome DevTools的更新,应用JavaScript与硬件对话曾经成为事实。

因而,在本文中,我将介绍三个新的JavaScript API,即WebHIDWebNFCWebUSB可用于设施硬件拜访。让咱们别离看一下这些技术。

1.什么是WebHID?

在将HID(人机界面设施)集成到软件中时,开发人员面临的一个次要问题是,软件应适应大量的种类;旧设施、新设施、常见的型号、不常见的型号等。

WebHID通过提供一个在JavaScript中实现设施特定逻辑的API来解决这个问题。

基本上,如果你想用任天堂Switch的Joy-Con控制器玩Chrome Dino离线游戏,WebHID使你有可能做到这一点。很酷,不是吗?

你能够应用上面的代码片段来理解是否反对WebHID。

if ("hid" in navigator) { /* The WebHID API is supported. */ }

利用程序实施WebHID连贯设施后,将显示以下提醒。

你须要做的是,抉择正确的设施并点击连贯。就这么简略!

WebHID API是异步的。因而,在期待新设施连贯或输出时,它不会阻止UI。

平安注意事项

我置信这是在发现WebHID能做什么之后想到的事件。

该API的开发采纳了《管制对弱小的网络平台性能的拜访》中定义的外围准则,包含用户管制、透明度和人体工程学。此外,一次仅容许一个HID设施连贯。

此外,Chrome DevTools通过提供浏览器所连贯的设施的日志,使其更容易调试与设施的连贯。这能够在chrome://device-log(Chrome的一个外部页面)查看。

浏览器兼容性

WebHID目前在桌面上被Chrome和Edge反对。

接下来让咱们看一下WebNFC。

2.什么是WebNFC?

我置信,你以前肯定遇到过NFC(近场通信)这个缩写。

有了WebNFC,当初你能够读取或写入NFC标签,当它在你的设施范畴内。这是通过NDEF (NFC数据交换格局)实现的,它是由NFC标签格局反对的。

应用WebNFC

比方说,你须要治理你店里的库存。你能够用WebNFC建设一个库存治理网站,它能够将数据读/写到你库存的NFC标签上。

可能性是无穷的。这是一个将许多事件自动化的机会,使咱们的日常工作更有效率。

与WebHID类似,你能够应用上面的代码片段查看WebNFC反对。

if ('NDEFReader' in window) { /* Scan and write NFC tags */ }

平安注意事项

作为一项平安预防措施,Web NFC仅实用于顶级框架和平安浏览环境(仅HTTPS)。

如果实现WebNFC的网页隐没或不可见,所有与NFC标签的连贯将被暂停。当页面再次变得可见时,这些将被复原。页面可见性API(Page Visibility API)帮忙你辨认NFC操作的连贯状态。

浏览器兼容性

到目前为止,Chrome Android仅反对WebNFC。

接下来,让咱们一起看看WebUSB API。

3.什么是WebUSB?

WebUSB API容许你应用JavaScript与USB端口通信,从Chrome 61开始可用。

然而,你可能会想,咱们如何拜访每个USB设施的相干驱动程序,对吗?在WebHID API的反对下,它容许硬件制造商为其硬件设施建设跨平台的JavaScript SDK。

与下面探讨的API相似,对WebUSB的反对能够用上面的代码片断来检测。

if ("usb" in navigator) { /* The WebUSB API is supported. */ }

平安

在平安方面有许多控制措施来爱护未经受权的USB拜访,而且它只在反对HTTPS的平安上下文中工作,以爱护传输中的任何数据。此外,规范的浏览器批准程序是用来申请和授予拜访权的。

调试WebUSB API相干的工作也能够通过外部的chrome://device-log页面进行,该页面列出所有连贯的USB设施和相干的事件。

浏览器兼容性

WebUSB失去了Chrome浏览器、桌面上的Edge和安卓设施上的Chrome的反对。

无关WebUSB API的更多详细信息,能够参考Web上的拜访USB设施。

总结

无论是你的网站与你的硬件互动,还是你的硬件能与网络应用互动,这都是一个双赢的场面,因为他们不须要再装置非凡的驱动或软件来连贯。

在我看来,这是一个十分酷的新性能,将使生存变得更容易。