XRSession: sự kiện visibilitychange

Limited availability

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 visibilitychange được gửi đến một XRSession để thông báo khi nó trở nên hiển thị hoặc ẩn, hoặc khi nó trở nên hiển thị nhưng hiện không được tập trung. Khi nhận được sự kiện, bạn có thể kiểm tra giá trị của thuộc tính visibilityState của phiên để xác định trạng thái hiển thị mớ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("visibilitychange", (event) => { })

onvisibilitychange = (event) => { }

Loại sự kiện

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

Event XRSessionEvent

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.

session Read only

XRSession mà sự kiện đề cập đến.

Mô tả

Kích hoạt

Được kích hoạt khi một XRSession trở nên hiển thị hoặc ẩn, hoặc khi nó trở nên hiển thị nhưng hiện không được tập trung.

Khi XRSession nhận được sự kiện này, trạng thái hiển thị đã được thay đổi.

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

Khi nhận được sự kiện, bạn có thể kiểm tra giá trị của thuộc tính visibilityState của phiên để xác định trạng thái hiển thị mới.

Ví dụ

Ví dụ này minh họa cách lắng nghe một sự kiện visibilitychange trên một phiên WebXR, sử dụng addEventListener() để bắt đầu lắng nghe sự kiện:

js
navigator.xr.requestSession("inline").then((xrSession) => {
  xrSession.addEventListener("visibilitychange", (e) => {
    switch (e.session.visibilityState) {
      case "visible":
      case "visible-blurred":
        mySessionVisible(true);
        break;
      case "hidden":
        mySessionVisible(false);
        break;
    }
  });
});

Khi trạng thái hiển thị thay đổi, sự kiện được nhận và chuyển đến một hàm mySessionVisible(), với một tham số Boolean cho biết liệu phiên có đang được hiển thị cho người dùng hay không.

Bạn cũng có thể tạo trình xử lý sự kiện bằng cách gán nó cho thuộc tính trình xử lý sự kiện onvisibilitychange của XRSession, như sau:

js
xrSession.onvisibilitychange = (e) => {
  /* event handled here */
};

Thông số kỹ thuật

Specification
WebXR Device API
# eventdef-xrsession-visibilitychange
WebXR Device API
# dom-xrsession-onvisibilitychange

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