IdleDetector
注意:此功能在 專用 Web Workers 中可用。
IdleDetector 介面是 空閒檢測 API 的一部分,它提供了檢測裝置或螢幕上使用者活動的方法和事件。
此介面需要安全上下文。
建構函式
IdleDetector()實驗性-
建立一個新的
IdleDetector物件。
例項屬性
IdleDetector.userState只讀 實驗性-
返回一個字串,指示使用者是否在呼叫
start()時提供的閾值內與螢幕或裝置進行過互動,該字串的值為"active"(活動)或"idle"(空閒)。在呼叫start()之前,此屬性返回null。 IdleDetector.screenState只讀 實驗性-
返回一個字串,指示螢幕是否已鎖定,該字串的值為
"locked"(已鎖定)或"unlocked"(未鎖定)。在呼叫start()之前,此屬性返回null。
事件
change實驗性-
當
userState或screenState的值發生變化時觸發。
靜態方法
IdleDetector.requestPermission()實驗性-
返回一個
Promise,當用戶選擇是否授予來源訪問其空閒狀態的許可權時,該 Promise 會解析。如果接受,則解析為"granted"(已授予);如果拒絕,則解析為"denied"(已拒絕)。
例項方法
IdleDetector.start()實驗性-
返回一個
Promise,當檢測器開始監聽使用者空閒狀態的變化時,該 Promise 會解析。userState和screenState會獲得初始值。此方法接受一個可選的options物件,其中包含以毫秒為單位的threshold(應報告不活動的閾值)和用於中止空閒檢測器的signal(一個AbortSignal)。
示例
以下示例演示瞭如何建立一個檢測器並記錄使用者空閒狀態的變化。使用一個按鈕在請求許可權之前獲取必要的使用者啟用。
js
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.");
});
規範
| 規範 |
|---|
| 空閒檢測 API # api-idledetector |
瀏覽器相容性
載入中…