关于javascript:使用JavaScript访问设备硬件的新标准

7次阅读

共计 1899 个字符,预计需要花费 5 分钟才能阅读完成。

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 设施。

总结

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

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

正文完
 0