2016-12-01 159 views
2

我試圖在Chrome中啓用webusb功能來測試它。我嘗試在我的web服務器上本地運行這個演示(https://github.com/webusb/arduino),但它不起作用,而是在github上發佈的版本正常工作。在Chrome中啓用webusb時遇到問題

我的設置:

  • Apache網絡服務器支持SSL的自簽名證書
  • 最後谷歌瀏覽器與webusb和實驗API標誌的虛擬主機啓用
  • 進口自簽名證書在Chrome瀏覽器使得它相信它像一個有效cerficate
  • 從演示刪除起源試驗的薈萃

但是,當我訪問演示頁時我得到了javascript錯誤,因爲navigator.usb是未定義的。

我的設置出了什麼問題,爲什麼我的本地設置中未啓用navigator.usb,但在瀏覽同一瀏覽器的在線演示時啓用了該功能?

回答

5

爲了得到它,並運行,你必須啓用實驗網絡平臺功能,您可以在Chrome標誌找到這些:

chrome://flags/#enable-experimental-web-platform-features

現在navigator.usb會,是可用的,但是如果你」重新開發localhost你不會看到任何設備。要讓設備顯示出來,您應該使用--disable-webusb-security啓動Chrome,這會生成一個通知,通知您安全性會受損,並允許您查看連接的設備。爲更廣泛的解釋看看https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web

+0

你好,我試圖按照你給的「更廣泛的解釋」,但沒有運氣,requestDevice(...過濾器......等等等等等等鏈接中的步驟.. 。vendorId ...)會給出錯誤消息「SecurityError:必須處理用戶手勢以顯示權限請求。」 getDevices()返回0個設備。 鉻版58.0.3029.96(64位) 和運行從bat文件鉻: TASKKILL/F/IM的chrome.exe 開始的chrome.exe --args - 禁用網絡的安全性的user-data -dir =「c:/ chromedev」 – user3772575

+1

在嘗試做任何事情之前應該有用戶交互,大多數情況下這意味着您應該在按下按鈕之後啓動連接或類似操作。 –

+0

我的設備只是一個自定義的NFC閱讀器,用於收集數據的NFC標籤,沒有按鈕,我們有一個桌面應用程序向閱讀器發送消息,以便閱讀器能夠開始掃描標籤,但沒有處理設備我不確定如何將該消息發送給讀者。當我使用chrome.serial時,我能夠獲得設備的句柄(但chrome.serial正在被淘汰,所以我們不想使用它),也許他們不贊成這個版本的東西,因爲它仍然是實驗性的。 – user3772575