2017-06-26 77 views
0

我想從使用WebUSB API的USB設備獲取斷開連接事件。WebUSB API addEventListener斷開不觸發

我正在訪問該設備,並通過以下添加事件偵聽到「斷開」:

navigator.usb.requestDevice({ filters: [{ vendorId: ... ... ...}] }) 
    .then(device=> { 
      navigator.usb.addEventListener('disconnect', device => { 
        printToScreen("Message", "Device disconnect!!! "); 
      }); 
      return device.open(); 
    }) 

FYI:本printToScreen()方法將文本添加到div標籤。

設備劑量連接,我可以看到設備的權限列出,當我點擊地址欄中的鎖圖標,我可以檢索着陸頁URL沒有問題。當我斷開設備時,列出的設備許可被刪除(這是正常的,因爲設備沒有序列號,因此用戶授予的許可不能持續),但斷開事件不會出現?不知道我做錯了什麼。

所以我的問題是,我如何檢測/從斷開事件獲取回調?或者這是一個錯誤,我應該把它?任何幫助將不勝感激,謝謝。

此外,在將序列號添加到設備後,當我嘗試使用「return device.open()」打開設備時,出現「NotFoundError:Device unavailable」,但「navigator.usb.requestDevice 「返回正確的設備。

+1

通過替換在'printToScreen'上面添加console.log進行雙重檢查,然後是,提交一個錯誤。 –

回答

1

我剛剛提交了issue 737321來跟蹤這個問題。這是一種失敗模式,它在chrome.usb API中被解決,但在WebUSB中滑過,因爲重現它取決於內部Chrome組件的初始化順序。

更新:此修補程序將在Chrome 61.0.3144.0中提供。