IdleDetector

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.

Das IdleDetector-Interface der Idle Detection API bietet Methoden und Ereignisse, um Benutzeraktivität auf einem Gerät oder Bildschirm zu erkennen.

Dieses Interface erfordert einen sicheren Kontext.

EventTarget IdleDetector

Konstruktor

IdleDetector() Experimentell

Erstellt ein neues IdleDetector-Objekt.

Instanzeigenschaften

IdleDetector.userState Schreibgeschützt Experimentell

Gibt einen String zurück, der angibt, ob der Benutzer mit dem Bildschirm oder dem Gerät innerhalb der an start() übergebenen Schwelle interagiert hat, entweder "active" oder "idle". Dieses Attribut gibt null zurück, bevor start() aufgerufen wird.

IdleDetector.screenState Schreibgeschützt Experimentell

Gibt einen String zurück, der angibt, ob der Bildschirm gesperrt ist, entweder "locked" oder "unlocked". Dieses Attribut gibt null zurück, bevor start() aufgerufen wird.

Ereignisse

change Experimentell

Wird aufgerufen, wenn sich der Wert von userState oder screenState geändert hat.

Statische Methoden

IdleDetector.requestPermission() Experimentell

Gibt ein Promise zurück, das aufgelöst wird, wenn der Benutzer gewählt hat, ob er dem Ursprung Zugriff auf seinen Leerlaufzustand gewähren möchte. Wird mit "granted" bei Annahme und "denied" bei Ablehnung aufgelöst.

Instanzmethoden

IdleDetector.start() Experimentell

Gibt ein Promise zurück, das aufgelöst wird, wenn der Detektor beginnt, Änderungen im Leerlaufzustand des Benutzers zu überwachen. userState und screenState erhalten Anfangswerte. Diese Methode nimmt ein optionales options-Objekt mit der threshold in Millisekunden, in der Inaktivität gemeldet werden soll, und signal für einen AbortSignal, um den Leerlaufdetektor abzubrechen.

Beispiele

Das folgende Beispiel zeigt die Erstellung eines Detektors und das Protokollieren von Änderungen am Leerlaufzustand des Benutzers. Ein Button wird verwendet, um die notwendige Benutzeraktivierung vor dem Anfordern der Berechtigung zu erhalten.

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

Spezifikationen

Specification
Idle Detection API
# api-idledetector

Browser-Kompatibilität

BCD tables only load in the browser