WakeLockSentinel

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.

Das WakeLockSentinel Interface der Screen Wake Lock API kann verwendet werden, um den Status der Plattform-Bildschirmsperre zu überwachen und die Sperre bei Bedarf manuell freizugeben.

Die Bildschirmsperre verhindert, dass Gerätebildschirme gedimmt oder gesperrt werden, wenn eine Anwendung weiterlaufen muss.

Eine Bildschirmsperre wird mit der Methode navigator.wakeLock.request() angefordert, die ein Promise zurückgibt, das bei Gewährung der Sperre mit einem WakeLockSentinel Objekt erfüllt wird.

Eine erworbene Bildschirmsperre kann manuell über die Methode release() oder automatisch über die Plattform-Bildschirmsperre freigegeben werden. Letzteres kann geschehen, wenn das Dokument inaktiv oder unsichtbar wird, wenn das Gerät wenig Energie hat, oder wenn der Benutzer einen Energiesparmodus aktiviert. Ein freigegebenes WakeLockSentinel kann nicht erneut verwendet werden: Ein neues Sentinel muss mit navigator.wakeLock.request() angefordert werden, wenn eine neue Sperre benötigt wird. Das Freigeben aller WakeLockSentinel Instanzen eines bestimmten Typs von Sperre führt dazu, dass die zugrunde liegende Plattform-Sperre freigegeben wird.

Ein Ereignis wird am WakeLockSentinel ausgelöst, wenn die Plattform-Sperre freigegeben wird, was es Anwendungen ermöglicht, ihre Benutzeroberfläche zu konfigurieren und die Sperre bei Bedarf erneut anzufordern.

EventTarget WakeLockSentinel

Instanz-Eigenschaften

Erbt auch Eigenschaften von seiner Elternschnittstelle, EventTarget.

released Schreibgeschützt

Gibt einen Boolean zurück, der angibt, ob das WakeLockSentinel freigegeben wurde.

type Schreibgeschützt

Gibt eine Zeichenfolgenrepräsentation des aktuell erworbenen WakeLockSentinel Typs zurück. Mögliche Rückgabewerte sind:

  • screen: Eine Bildschirmsperre. Verhindert, dass Gerätebildschirme gedimmt oder gesperrt werden.

Instanz-Methoden

Erbt auch Methoden von seiner Elternschnittstelle, EventTarget.

release()

Gibt das WakeLockSentinel frei und gibt ein Promise zurück, das aufgelöst wird, sobald das Sentinel erfolgreich freigegeben wurde.

Ereignisse

release

Wird ausgelöst, wenn die Methode release() aufgerufen wird oder die Sperre vom User-Agent freigegeben wird.

Beispiele

In diesem Beispiel erstellen wir eine asynchrone Funktion, die ein WakeLockSentinel anfordert. Sobald die Bildschirmsperre erworben wurde, hören wir auf das release Ereignis, das verwendet werden kann, um entsprechendes Feedback an die Benutzeroberfläche zu geben. Das Sentinel kann durch entsprechende Interaktionen erworben oder freigegeben werden.

js
// create a reference for the wake lock
let wakeLock = null;

// create an async function to request a wake lock
const requestWakeLock = async () => {
  try {
    wakeLock = await navigator.wakeLock.request("screen");

    // listen for our release event
    wakeLock.addEventListener("release", () => {
      // if wake lock is released alter the UI accordingly
    });
  } catch (err) {
    // if wake lock request fails - usually system related, such as battery
  }
};

wakeLockOnButton.addEventListener("click", () => {
  requestWakeLock();
});

wakeLockOffButton.addEventListener("click", () => {
  if (wakeLock !== null) {
    wakeLock.release().then(() => {
      wakeLock = null;
    });
  }
});

Spezifikationen

Specification
Screen Wake Lock API
# the-wakelocksentinel-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch