Signatur
Beschreibung
Die Eigenschaft display ist schreibgeschützt. Sie verweist auf das VRDisplay-Objekt, zu dem ein VRDisplayEvent gehört. Solche Ereignisse löst der Browser am window aus, z. B. vrdisplayconnect, vrdisplaydisconnect, vrdisplayactivate, vrdisplaydeactivate und vrdisplaypresentchange.
Mit display findest du heraus, welches Headset gemeint ist. Das ist vor allem wichtig, wenn mehrere VR-Geräte angeschlossen sind oder ein Gerät zur Laufzeit hinzukommt oder entfernt wird. Über das zurückgegebene Objekt kannst du z. B. displayName, displayId oder isPresenting abfragen. Du kannst auch direkt requestPresent() aufrufen, etwa wenn der Nutzer das Headset aufsetzt (vrdisplayactivate).
Die Eigenschaft gehört zur experimentellen WebVR-API. Diese API ist veraltet und wurde durch die WebXR Device API ersetzt. Für neue Projekte solltest du nur noch WebXR (navigator.xr, XRSession) verwenden.
Rückgabewert
VRDisplay-Objekt, das mit dem Ereignis verknüpft ist.Beispiele
Neu angeschlossenes Headset erkennen
window.addEventListener('vrdisplayconnect', (event) => {
const { display } = event;
console.log(`Verbunden: ${display.displayName} (ID ${display.displayId})`);
});
Präsentation starten, wenn das Headset aufgesetzt wird
const canvas = document.querySelector('#vr-canvas');
const onActivate = async (event) => {
const display = event.display;
if (display.isPresenting) return;
try {
await display.requestPresent([{ source: canvas }]);
console.log('Präsentation gestartet auf', display.displayName);
} catch (err) {
console.error('requestPresent fehlgeschlagen:', err);
}
};
window.addEventListener('vrdisplayactivate', onActivate);
Getrenntes Gerät aus der Liste entfernen (mit on-Property)
let displays = [];
if (navigator.getVRDisplays) {
navigator.getVRDisplays().then((list) => { displays = list; });
}
window.onvrdisplaydisconnect = (event) => {
displays = displays.filter((d) => d.displayId !== event.display.displayId);
console.log(`${event.display.displayName} getrennt, verbleibend: ${displays.length}`);
};
// Später wieder abmelden:
// window.onvrdisplaydisconnect = null;
// Wichtig · Fallstricke
- Veraltet: WebVR wurde nie standardisiert. Unterstützung gab es nur in alten Firefox-Versionen, in Edge (Legacy) und hinter Flags in Chrome. Aktuelle Browser unterstützen die API nicht. Nimm stattdessen die WebXR Device API.
- Prüfe vor der Nutzung, ob die API vorhanden ist, z. B. mit
'getVRDisplays' in navigator. Andernfalls kann dein Code auf nicht vorhandene Ereignisse warten. displayist schreibgeschützt. Eine Zuweisung wird ignoriert oder wirft im Strict Mode einen Fehler.- Vergleiche Geräte über
displayId, nicht über den Objektverweis. Nach einem erneuten Verbinden kann der Browser ein neuesVRDisplay-Objekt liefern. - Rufe
requestPresent()nur als Reaktion auf eine Nutzeraktion oder aufvrdisplayactivateauf. Sonst lehnt der Browser den Aufruf ab.