Start · Sprachen · JavaScript · Referenz · VRDisplay.displayName

VRDisplay.displayName

Eigenschaft

Schreibgeschützte Eigenschaft, die einen für Menschen lesbaren Namen des VR-Headsets als <code>string</code> liefert, z. B. „Oculus Rift CV1“.

seit JavaScript WebVR 1.1 (veraltet, nicht standardisiert) – erset deprecated seit ja Kategorie: webapi

Signatur

VRDisplay.displayName

Beschreibung

Die Eigenschaft displayName der Schnittstelle VRDisplay aus der veralteten WebVR-API liefert einen Namen, mit dem Menschen das angeschlossene VR-Gerät erkennen können. Typische Werte sind z. B. "Oculus Rift CV1", "OpenVR HMD" oder "Google Cardboard".

Gebraucht wird der Wert vor allem in der Benutzeroberfläche: Sind mehrere Geräte angeschlossen, lässt sich damit eine Auswahlliste bauen, oder man zeigt einfach an, welches Headset gerade benutzt wird. Für die technische Unterscheidung von Geräten ist dagegen VRDisplay.displayId gedacht, weil der Name nicht eindeutig sein muss.

Ein VRDisplay-Objekt bekommt man über navigator.getVRDisplays(). Der Wert von displayName kann nur gelesen werden. Wird ihm etwas zugewiesen, passiert nichts; im Strict Mode wird ein TypeError ausgelöst.

Rückgabewert

Typ
string
Beschreibung
Ein für Menschen lesbarer Name des VR-Geräts. Aufbau und Inhalt legt der Browser bzw. der Gerätetreiber fest.

Beispiele

Namen des ersten VR-Geräts ausgeben

const zeigeHeadset = async () => {
  if (!('getVRDisplays' in navigator)) {
    console.log('WebVR wird nicht unterstützt.');
    return;
  }
  const displays = await navigator.getVRDisplays();
  if (displays.length === 0) {
    console.log('Kein VR-Gerät gefunden.');
    return;
  }
  console.log(`Verbundenes Headset: ${displays[0].displayName}`);
};

zeigeHeadset();
Verbundenes Headset: Oculus Rift CV1

Auswahlliste für mehrere Geräte erstellen

const baueGeraeteAuswahl = async (select) => {
  const displays = await navigator.getVRDisplays();
  for (const display of displays) {
    const option = document.createElement('option');
    option.value = String(display.displayId); // eindeutige Kennung
    option.textContent = display.displayName; // lesbarer Name
    select.append(option);
  }
  return displays;
};

const select = document.querySelector('#vr-geraet');
baueGeraeteAuswahl(select).then((d) => console.log(`${d.length} Gerät(e) gefunden`));
2 Gerät(e) gefunden

Schreibschutz zeigen

'use strict';

navigator.getVRDisplays().then(([display]) => {
  if (!display) return;
  try {
    display.displayName = 'Mein Headset';
  } catch (err) {
    console.log(err instanceof TypeError); // Eigenschaft hat nur einen Getter
  }
  console.log(display.displayName);
});
true OpenVR HMD

// Wichtig · Fallstricke

  • Veraltet: WebVR wurde nie als Standard verabschiedet und ist durch die WebXR Device API ersetzt. Die meisten aktuellen Browser unterstützen es nicht mehr. Früher war es z. B. in Firefox (Windows), in Chrome nur hinter einem Flag oder in Testversionen, im Samsung Internet und im Oculus Browser verfügbar. Für neue Projekte sollte man navigator.xr verwenden. WebXR gibt aus Datenschutzgründen keinen Gerätenamen preis.
  • Nicht eindeutig: Zwei baugleiche Headsets können denselben Namen haben. Zum Unterscheiden daher displayId verwenden.
  • Uneinheitliche Werte: Wie der Name aufgebaut ist, hängt von Browser, Treiber und Laufzeitumgebung ab (z. B. „OpenVR HMD“ statt des Modellnamens). Deshalb keine Programmlogik von einem bestimmten Namen abhängig machen.
  • Datenschutz: Der Gerätename kann zum Fingerprinting beitragen. Man sollte ihn nur anzeigen und nicht an Server übertragen.
  • Vor dem Zugriff mit 'getVRDisplays' in navigator prüfen, ob die API überhaupt vorhanden ist.