HIDDevice:inputreport 事件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

注意:此功能在 Web Workers 中可用,但 共享 Web Workers 除外。

inputreport 事件是 HIDDevice 介面的一部分,當從 HID 裝置接收到新報告時觸發。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("inputreport", (event) => { })

oninputreport = (event) => { }

事件型別

一個 HIDInputReportEvent。繼承自 Event

Event HIDInputReportEvent

事件屬性

此介面還繼承了 Event 的屬性。

HIDInputReportEvent.data 只讀

一個 DataView,包含來自輸入報告的資料,如果 HID 介面使用報告 ID,則不包含 reportId

HIDInputReportEvent.device 只讀

代表傳送輸入報告的 HID 介面的 HIDDevice 例項。

HIDInputReportEvent.reportId 只讀

此報告的一位元組標識字首,如果 HID 介面不使用報告 ID,則為 0。

示例

以下示例演示瞭如何監聽 inputreport 事件,該事件允許應用程式檢測 Joy-Con Right 裝置上按下哪個按鈕。您可以在文章 連線到不常見的 HID 裝置 中找到更多示例和即時演示。

js
device.addEventListener("inputreport", (event) => {
  const { data, device, reportId } = event;

  // Handle only the Joy-Con Right device and a specific report ID.
  if (device.productId !== 0x2007 && reportId !== 0x3f) return;

  const value = data.getUint8(0);
  if (value === 0) return;

  const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
  console.log(`User pressed button ${someButtons[value]}.`);
});

規範

規範
WebHID API
# dom-hiddevice-oninputreport

瀏覽器相容性