IdleDetector
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Dedicated Web Workers.
Giao diện IdleDetector của Idle Detection API cung cấp các phương thức và sự kiện để phát hiện hoạt động của người dùng trên thiết bị hoặc màn hình.
Giao diện này yêu cầu ngữ cảnh bảo mật.
Hàm khởi tạo
IdleDetector()Experimental-
Tạo một đối tượng
IdleDetectormới.
Thuộc tính phiên bản
IdleDetector.userStateRead only Experimental-
Trả về một chuỗi cho biết người dùng có tương tác với màn hình hoặc thiết bị trong ngưỡng thời gian cung cấp cho
start()hay không, một trong hai giá trị"active"hoặc"idle". Thuộc tính này trả vềnulltrước khistart()được gọi. IdleDetector.screenStateRead only Experimental-
Trả về một chuỗi cho biết màn hình có bị khóa hay không, một trong hai giá trị
"locked"hoặc"unlocked". Thuộc tính này trả vềnulltrước khistart()được gọi.
Sự kiện
changeExperimental-
Được gọi khi giá trị của
userStatehoặcscreenStatethay đổi.
Phương thức tĩnh
IdleDetector.requestPermission()Experimental-
Trả về một
Promisephân giải khi người dùng đã chọn có cấp quyền truy cập trạng thái rảnh rỗi cho nguồn gốc hay không. Phân giải thành"granted"nếu chấp nhận và"denied"nếu từ chối.
Phương thức phiên bản
IdleDetector.start()Experimental-
Trả về một
Promisephân giải khi bộ phát hiện bắt đầu lắng nghe các thay đổi trong trạng thái rảnh rỗi của người dùng.userStatevàscreenStateđược gán giá trị ban đầu. Phương thức này nhận một đối tượngoptionstùy chọn vớithresholdtính bằng mili giây xác định thời gian không hoạt động cần báo cáo vàsignalchoAbortSignalđể hủy bộ phát hiện rảnh rỗi.
Ví dụ
Ví dụ dưới đây minh họa cách tạo bộ phát hiện và ghi lại các thay đổi về trạng thái rảnh rỗi của người dùng. Một nút được dùng để kích hoạt người dùng trước khi yêu cầu quyền.
const controller = new AbortController();
const signal = controller.signal;
startButton.addEventListener("click", async () => {
if ((await IdleDetector.requestPermission()) !== "granted") {
console.error("Idle detection permission denied.");
return;
}
try {
const idleDetector = new IdleDetector();
idleDetector.addEventListener("change", () => {
const userState = idleDetector.userState;
const screenState = idleDetector.screenState;
console.log(`Idle change: ${userState}, ${screenState}.`);
});
await idleDetector.start({
threshold: 60_000,
signal,
});
console.log("IdleDetector is active.");
} catch (err) {
// Deal with initialization errors like permission denied,
// running outside of top-level frame, etc.
console.error(err.name, err.message);
}
});
stopButton.addEventListener("click", () => {
controller.abort();
console.log("IdleDetector is stopped.");
});
Thông số kỹ thuật
| Specification |
|---|
| Idle Detection API> # api-idledetector> |