天天看點

js IdleDetector 檢測使用者是否處于活動狀态API

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);
  }
});