這篇文章將為大家詳細(xì)講解有關(guān)如何使用JavaScript訪問設(shè)備硬件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
10余年的定陶網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整定陶建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“定陶網(wǎng)站設(shè)計”,“定陶網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
WebHID,WebNFC和WebUSB開辟了新的途徑,可以與用戶用于Web應(yīng)用程序的設(shè)備硬件進(jìn)行交互。
你是否遇到過需要訪問用戶的設(shè)備硬件,并只為該功能實現(xiàn)一個桌面應(yīng)用程序?你并不孤單。直到最近,實現(xiàn)上述目的的方式還很牽強(qiáng)和麻煩。然而,隨著最近Chrome DevTools的更新,使用JavaScript與硬件對話已經(jīng)成為現(xiàn)實。
因此,在本文中,我將介紹三個新的JavaScript API,即WebHID,WebNFC和WebUSB可用于設(shè)備硬件訪問。讓我們分別看一下這些技術(shù)。
在將HID(人機(jī)界面設(shè)備)集成到軟件中時,開發(fā)人員面臨的一個主要問題是,軟件應(yīng)適應(yīng)大量的品種;舊設(shè)備、新設(shè)備、常見的型號、不常見的型號等。
WebHID通過提供一個在JavaScript中實現(xiàn)設(shè)備特定邏輯的API來解決這個問題。
基本上,如果你想用任天堂Switch的Joy-Con控制器玩Chrome Dino??離線游戲,WebHID使你有可能做到這一點。很酷,不是嗎?
你可以使用下面的代碼片段來了解是否支持WebHID。
if ("hid" in navigator) { /* The WebHID API is supported. */ }
應(yīng)用程序?qū)嵤¦ebHID連接設(shè)備后,將顯示以下提示。
你需要做的是,選擇正確的設(shè)備并點擊連接。就這么簡單!
WebHID API是異步的。因此,在等待新設(shè)備連接或輸入時,它不會阻止UI。
我相信這是在發(fā)現(xiàn)WebHID能做什么之后想到的事情。
該API的開發(fā)采用了《控制對強(qiáng)大的網(wǎng)絡(luò)平臺功能的訪問》中定義的核心原則,包括用戶控制、透明度和人體工程學(xué)。此外,一次僅允許一個HID設(shè)備連接。
此外,Chrome DevTools通過提供瀏覽器所連接的設(shè)備的日志,使其更容易調(diào)試與設(shè)備的連接。這可以在chrome://device-log(Chrome的一個內(nèi)部頁面)查看。
WebHID目前在桌面上被Chrome和Edge支持。
接下來讓我們看一下WebNFC。
我相信,你以前一定遇到過NFC(近場通信)這個縮寫。
有了WebNFC,現(xiàn)在你可以讀取或?qū)懭隢FC標(biāo)簽,當(dāng)它在你的設(shè)備范圍內(nèi)。這是通過NDEF (NFC數(shù)據(jù)交換格式)完成的,它是由NFC標(biāo)簽格式支持的。
使用WebNFC
比方說,你需要管理你店里的庫存。你可以用WebNFC建立一個庫存管理網(wǎng)站,它可以將數(shù)據(jù)讀/寫到你庫存的NFC標(biāo)簽上。
可能性是無窮的。這是一個將許多事情自動化的機(jī)會,使我們的日常工作更有效率。
與WebHID相似,你可以使用下面的代碼片段檢查WebNFC支持。
if ('NDEFReader' in window) { /* Scan and write NFC tags */ }
安全注意事項
作為一項安全預(yù)防措施,Web NFC僅適用于頂級框架和安全瀏覽環(huán)境(僅HTTPS)。
如果實現(xiàn)WebNFC的網(wǎng)頁消失或不可見,所有與NFC標(biāo)簽的連接將被暫停。當(dāng)頁面再次變得可見時,這些將被恢復(fù)。頁面可見性API(Page Visibility API)幫助你識別NFC操作的連接狀態(tài)。
瀏覽器兼容性
到目前為止,Chrome Android僅支持WebNFC。
接下來,讓我們一起看看WebUSB API。
WebUSB API允許你使用JavaScript與USB端口通信,從Chrome 61開始可用。
然而,你可能會想,我們?nèi)绾卧L問每個USB設(shè)備的相關(guān)驅(qū)動程序,對嗎?在WebHID API的支持下,它允許硬件制造商為其硬件設(shè)備建立跨平臺的JavaScript SDK。
與上面討論的API類似,對WebUSB的支持可以用下面的代碼片斷來檢測。
if ("usb" in navigator) { /* The WebUSB API is supported. */ }
在安全方面有許多控制措施來保護(hù)未經(jīng)授權(quán)的USB訪問,而且它只在支持HTTPS的安全上下文中工作,以保護(hù)傳輸中的任何數(shù)據(jù)。此外,標(biāo)準(zhǔn)的瀏覽器同意程序是用來請求和授予訪問權(quán)的。
調(diào)試WebUSB API相關(guān)的任務(wù)也可以通過內(nèi)部的chrome://device-log頁面進(jìn)行,該頁面列出所有連接的USB設(shè)備和相關(guān)的事件。
WebUSB得到了Chrome瀏覽器、桌面上的Edge和安卓設(shè)備上的Chrome的支持。
有關(guān)WebUSB API的更多詳細(xì)信息,可以參考Web上的訪問USB設(shè)備。
關(guān)于“如何使用JavaScript訪問設(shè)備硬件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。