XRSession: inputsourceschange 事件

可用性有限

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

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

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

當可用的 WebXR 輸入裝置集合發生變化時,會向 XRSession 傳送 inputsourceschange 事件。

語法

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

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

oninputsourceschange = (event) => { }

事件型別

一個 XRInputSourcesChangeEvent。繼承自 Event

Event XRInputSourcesChangeEvent

事件屬性

除了下面列出的屬性之外,父介面 Event 的屬性也可使用。

added 只讀

一個零個或多個 XRInputSource 物件的陣列,每個物件代表最近連線或啟用的輸入裝置。

removed 只讀

一個零個或多個 XRInputSource 物件的陣列,代表最近斷開連線或停用的輸入裝置。

session 只讀

此輸入源更改事件正在定向的 XRSession

描述

觸發

當可用的 WebXR 輸入裝置集合發生變化時觸發。

用例

您可以使用此事件來檢測新可用的裝置或裝置何時變得不可用。

示例

以下示例顯示瞭如何設定一個事件處理程式,該處理程式使用 inputsourceschange 事件來檢測新可用的指向裝置,並載入它們的模型,以便在下一個動畫幀中顯示它們。

js
xrSession.addEventListener("inputsourceschange", onInputSourcesChange);

function onInputSourcesChange(event) {
  for (const input of event.added) {
    if (input.targetRayMode === "tracked-pointer") {
      loadControllerMesh(input);
    }
  }
}

您還可以透過設定 oninputsourceschange 事件處理程式來為 inputsourceschange 事件新增處理程式。

js
xrSession.oninputsourceschange = onInputSourcesChange;

規範

規範
WebXR Device API
# eventdef-xrsession-inputsourceschange
WebXR Device API
# dom-xrsession-oninputsourceschange

瀏覽器相容性