btn.addEventListener("click", async () => {
try {
const state = await Notification.requestPermission();
if (state !== "granted") {
// Need to request permission first.
return console.log("Idle detection permission not granted.");
}
const controller = new AbortController();
const signal = controller.signal;
// 建立空閑檢測器
const idleDetector = new IdleDetector();
// 設定一個事件偵聽器,該偵聽器在空閑狀态更改時觸發。
idleDetector.addEventListener("change", () => {
const uState = idleDetector.userState; // 是否活動狀态
const sState = idleDetector.screenState; // 是否鎖屏
console.log(`Idle change: %s, %s.`, uState, sState);
});
// 啟動空閑檢測器。
await idleDetector.start({
threshold: 60000, // 最小值為60,000毫秒(1分鐘)
signal,
});
// 中斷檢測
// controller.abort();
} catch (error) {
console.error("[IdleDetector] Error: %s", error.message);
}
});