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.
addEventListener("visibilitychange", (event) => { })
onvisibilitychange = (event) => { }
Loại sự kiện
Một XRSessionEvent. Kế thừa từ Event.
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.
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:
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:
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> |