Start · Sprachen · JavaScript · Referenz · WakeLockSentinel.type

WakeLockSentinel.type

Eigenschaft

Schreibgeschützte Eigenschaft, die den Typ der erworbenen Bildschirmsperre als String liefert – aktuell immer <code>"screen"</code>.

seit JavaScript Screen Wake Lock API – Baseline 2025 (Chrome/Edge Kategorie: webapi

Signatur

WakeLockSentinel.type

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

Typ
string
Beschreibung
Der Typ der Sperre als String (Enum 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();
Wake Lock aktiv, Typ: screen

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);
Sperre vom Typ "screen" freigegeben, released=true

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();
Aktive Typen: [ 'screen' ]

// Wichtig · Fallstricke

  • Schreibgeschützt: sentinel.type = 'system' wird im nicht-strikten Modus stillschweigend ignoriert und löst im Strict Mode einen TypeError aus.
  • Nur ein Wert: Derzeit gibt es nur "screen". Wer request('system') aufruft, bekommt einen TypeError.
  • Der Wert bleibt nach der Freigabe erhalten: Auch nach release() oder einer automatischen Freigabe (z. B. wenn der Tab ausgeblendet wird) liefert type weiterhin "screen". Ob die Sperre noch aktiv ist, zeigt released.
  • Kompatibilität: Die API funktioniert nur in sicheren Kontexten (HTTPS). Sie kann durch die Permissions-Policy screen-wake-lock blockiert sein. Firefox unterstützt sie erst ab Version 126. Vor der Nutzung mit 'wakeLock' in navigator prüfen, ob die API vorhanden ist.