使用JavaScript訪問設備硬件的新標準

WebHID,WebNFC和WebUSB開闢了新的途徑,能夠與用戶用於Web應用程序的設備硬件進行交互。web

你是否遇到過須要訪問用戶的設備硬件,並只爲該功能實現一個桌面應用程序?你並不孤單。直到最近,實現上述目的的方式還很牽強和麻煩。然而,隨着最近Chrome DevTools的更新,使用JavaScript與硬件對話已經成爲現實。chrome

所以,在本文中,我將介紹三個新的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能作什麼以後想到的事情。spa

該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設備

總結

不管是你的網站與你的硬件互動,仍是你的硬件能與網絡應用互動,這都是一個共贏的局面,由於他們不須要再安裝特殊的驅動或軟件來鏈接。

在我看來,這是一個很是酷的新功能,將使生活變得更容易。

相關文章
相關標籤/搜索