WakeLockSentinel

Baseline 2025
Newly available

Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

Giao diện WakeLockSentinel của Screen Wake Lock API có thể được sử dụng để theo dõi trạng thái của khóa thức màn hình nền tảng và giải phóng khóa thủ công khi cần.

Khóa thức màn hình ngăn màn hình thiết bị bị mờ hoặc khóa khi ứng dụng cần tiếp tục chạy.

Một khóa thức màn hình được yêu cầu bằng phương thức navigator.wakeLock.request(), trả về một Promise được thực hiện với đối tượng WakeLockSentinel nếu khóa được cấp.

Một khóa thức màn hình đã được cấp có thể được giải phóng thủ công qua phương thức release(), hoặc tự động qua khóa thức màn hình nền tảng. Điều sau có thể xảy ra nếu tài liệu trở nên không hoạt động hoặc mất tầm nhìn, nếu thiết bị yếu pin, hoặc nếu người dùng bật chế độ tiết kiệm điện. Một WakeLockSentinel đã được giải phóng không thể tái sử dụng: phải yêu cầu một sentinel mới bằng navigator.wakeLock.request() nếu cần khóa mới. Giải phóng tất cả các phiên bản WakeLockSentinel của một loại khóa thức nhất định sẽ khiến khóa thức nền tảng cơ sở được giải phóng.

Một sự kiện được kích hoạt tại WakeLockSentinel nếu khóa nền tảng được giải phóng, cho phép ứng dụng cấu hình lại UI của mình và yêu cầu lại khóa nếu cần.

EventTarget WakeLockSentinel

Thuộc tính phiên bản

Cũng kế thừa các thuộc tính từ giao diện cha, EventTarget.

released Read only

Trả về giá trị boolean cho biết liệu WakeLockSentinel có đã được giải phóng không.

type Read only

Trả về biểu diễn chuỗi của loại WakeLockSentinel hiện đang được giữ. Các giá trị trả về là:

  • screen: Khóa thức màn hình. Ngăn thiết bị làm mờ hoặc khóa màn hình.

Phương thức phiên bản

Cũng kế thừa các phương thức từ giao diện cha, EventTarget.

release()

Giải phóng WakeLockSentinel, trả về một Promise được giải quyết sau khi sentinel đã được giải phóng thành công.

Sự kiện

release

Được kích hoạt khi phương thức release() được gọi hoặc khóa thức được giải phóng bởi tác nhân người dùng.

Ví dụ

Trong ví dụ này, chúng ta tạo một hàm bất đồng bộ để yêu cầu WakeLockSentinel. Sau khi khóa thức màn hình được cấp, chúng ta lắng nghe sự kiện release, có thể được sử dụng để cung cấp phản hồi UI phù hợp. Sentinel có thể được cấp hoặc giải phóng qua các tương tác phù hợp.

js
// create a reference for the wake lock
let wakeLock = null;

// create an async function to request a wake lock
const requestWakeLock = async () => {
  try {
    wakeLock = await navigator.wakeLock.request("screen");

    // listen for our release event
    wakeLock.addEventListener("release", () => {
      // if wake lock is released alter the UI accordingly
    });
  } catch (err) {
    // if wake lock request fails - usually system related, such as battery
  }
};

wakeLockOnButton.addEventListener("click", () => {
  requestWakeLock();
});

wakeLockOffButton.addEventListener("click", () => {
  if (wakeLock !== null) {
    wakeLock.release().then(() => {
      wakeLock = null;
    });
  }
});

Thông số kỹ thuật

Thông số kỹ thuật
Screen Wake Lock API
# the-wakelocksentinel-interface

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

Xem thêm