XRSession: sự kiện inputsourceschange

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Sự kiện inputsourceschange được gửi đến một XRSession khi tập hợp các thiết bị đầu vào WebXR khả dụng thay đổi.

Cú pháp

Sử dụng tên sự kiện trong các phương thức như addEventListener(), hoặc thiết lập một thuộc tính trình xử lý sự kiện.

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

oninputsourceschange = (event) => { }

Loại sự kiện

Một XRInputSourcesChangeEvent. Kế thừa từ Event.

Event XRInputSourcesChangeEvent

Thuộc tính sự kiện

Ngoài các thuộc tính được liệt kê bên dưới, các thuộc tính từ giao diện cha, Event, cũng có sẵn.

added Read only

Một mảng gồm không hoặc nhiều đối tượng XRInputSource, mỗi đối tượng biểu diễn một thiết bị đầu vào mới được kết nối hoặc kích hoạt.

removed Read only

Một mảng gồm không hoặc nhiều đối tượng XRInputSource biểu diễn các thiết bị đầu vào mới bị ngắt kết nối hoặc vô hiệu hóa.

session Read only

XRSession mà sự kiện thay đổi nguồn đầu vào này đang được gửi đến.

Mô tả

Kích hoạt

Được kích hoạt khi tập hợp các thiết bị đầu vào WebXR khả dụng thay đổi.

Trường hợp sử dụng

Bạn có thể sử dụng sự kiện này để phát hiện các thiết bị mới khả dụng hoặc khi các thiết bị trở nên không khả dụng.

Ví dụ

Ví dụ sau đây cho thấy cách thiết lập một trình xử lý sự kiện sử dụng các sự kiện inputsourceschange để phát hiện các thiết bị trỏ mới khả dụng và tải mô hình của chúng để chuẩn bị hiển thị chúng trong khung hình hoạt ảnh tiếp theo.

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

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

Bạn cũng có thể thêm một trình xử lý cho các sự kiện inputsourceschange bằng cách thiết lập trình xử lý sự kiện oninputsourceschange:

js
xrSession.oninputsourceschange = onInputSourcesChange;

Thông số kỹ thuật

Thông số kỹ thuật
WebXR Device API
# eventdef-xrsession-inputsourceschange
WebXR Device API
# dom-xrsession-oninputsourceschange

Tương thích trình duyệt