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.
Instanz-Eigenschaften
Erbt auch Eigenschaften von seiner Elternschnittstelle, EventTarget
.
released
Nur lesbar-
Gibt einen Boolean zurück, der angibt, ob das
WakeLockSentinel
freigegeben wurde. type
Nur lesbar-
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
.
Ereignisse
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.
// 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