Signatur
Beschreibung
Die Eigenschaft type eines WakeLockSentinel-Objekts gibt an, welche Art von Wake Lock mit navigator.wakeLock.request() angefordert wurde. Der Wert entspricht dem Argument, das beim Anfordern übergeben wurde. Die Eigenschaft ist schreibgeschützt, Zuweisungen haben keine Wirkung.
Derzeit definiert die Spezifikation nur den Typ "screen". Er verhindert, dass der Bildschirm gedimmt oder abgeschaltet wird, solange die Sperre aktiv ist. Ein früher geplanter Typ "system", der die CPU wach halten sollte, wurde nicht umgesetzt.
Nützlich ist type vor allem für Logging und Debugging. Auch wenn eine Anwendung mehrere Sentinels verwaltet, etwa in einer zentralen Registry, hilft die Eigenschaft beim Unterscheiden. So bleibt der Code stabil, falls später weitere Typen dazukommen.
Rückgabewert
WakeLockType). Aktuell ist nur "screen" möglich.Beispiele
Typ nach dem Anfordern ausgeben
const aktiviereBildschirmsperre = async () => {
try {
const sentinel = await navigator.wakeLock.request('screen');
console.log(`Wake Lock aktiv, Typ: ${sentinel.type}`);
return sentinel;
} catch (err) {
console.error(`${err.name}: ${err.message}`);
}
};
aktiviereBildschirmsperre();
Typ beim Freigeben protokollieren
const sentinel = await navigator.wakeLock.request('screen');
sentinel.addEventListener('release', () => {
console.log(`Sperre vom Typ "${sentinel.type}" freigegeben, released=${sentinel.released}`);
});
// Nach 10 Sekunden manuell freigeben
setTimeout(() => sentinel.release(), 10_000);
Sentinels nach Typ in einer Registry verwalten
const sperren = new Map();
const anfordern = async (typ = 'screen') => {
if (!('wakeLock' in navigator)) return null;
const sentinel = await navigator.wakeLock.request(typ);
sperren.set(sentinel.type, sentinel);
sentinel.addEventListener('release', () => sperren.delete(sentinel.type));
return sentinel;
};
// Nach Tab-Wechsel erneut anfordern (Sperre wird bei verstecktem Dokument automatisch freigegeben)
document.addEventListener('visibilitychange', async () => {
if (document.visibilityState === 'visible' && !sperren.has('screen')) {
await anfordern('screen');
console.log('Aktive Typen:', [...sperren.keys()]);
}
});
await anfordern();
// Wichtig · Fallstricke
- Schreibgeschützt:
sentinel.type = 'system'wird im nicht-strikten Modus stillschweigend ignoriert und löst im Strict Mode einenTypeErroraus. - Nur ein Wert: Derzeit gibt es nur
"screen". Werrequest('system')aufruft, bekommt einenTypeError. - Der Wert bleibt nach der Freigabe erhalten: Auch nach
release()oder einer automatischen Freigabe (z. B. wenn der Tab ausgeblendet wird) lieferttypeweiterhin"screen". Ob die Sperre noch aktiv ist, zeigtreleased. - Kompatibilität: Die API funktioniert nur in sicheren Kontexten (HTTPS). Sie kann durch die Permissions-Policy
screen-wake-lockblockiert sein. Firefox unterstützt sie erst ab Version 126. Vor der Nutzung mit'wakeLock' in navigatorprüfen, ob die API vorhanden ist.