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.
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.
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.
Sự kiện
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.
// 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> |