[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/API/VirtualKeyboard_API [Back]  [Original]

VirtualKeyboard API - Web-APIs | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

VirtualKeyboard API

Eingeschrnkt verfgbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Experimentell: Dies ist eine experimentelle Technologie
berprfen Sie die Browser-Kompatibilittstabelle sorgfltig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen untersttzenden Browsern verfgbar.

Die VirtualKeyboard-API bietet Entwicklern die Mglichkeit, das Layout ihrer Anwendungen zu steuern, wenn die virtuelle Tastatur auf Gerten wie Tablets, Mobiltelefonen oder anderen Gerten, bei denen mglicherweise keine Hardware-Tastatur verfgbar ist, ein- und ausgeblendet wird.

Webbrowser behandeln virtuelle Tastaturen in der Regel eigenstndig, indem sie die Hhe des Ansichtsfensters anpassen und beim Fokussieren zu Eingabefeldern scrollen.

Die Abbildung unten veranschaulicht den Unterschied in der Ansichtsfensterhhe und der Scrollposition auf einer Webseite, wenn die virtuelle Tastatur des Gerts verborgen ist und wenn sie angezeigt wird.

Zwei Gerte, eines ohne virtuelle Tastatur, zeigt, dass die Webseite den grten Teil des vertikalen Platzes des Gerts nutzen kann, und eines mit virtueller Tastatur, zeigt, dass die Webseite nur in dem verbleibenden Raum angezeigt werden kann [Zwei Gerte, eines ohne virtuelle Tastatur, zeigt, dass die Webseite den grten Teil des vertikalen Platzes des Gerts nutzen kann, und eines mit virtueller Tastatur, zeigt, dass die Webseite nur in dem verbleibenden Raum angezeigt werden kann]

Komplexere Anwendungen oder spezielle Gerte wie Mehrbildschirm-Mobiltelefone erfordern mglicherweise mehr Kontrolle ber das Layout, wenn die virtuelle Tastatur angezeigt wird.

Die Abbildung unten zeigt, was auf einem Dual-Screen-Gert passiert, wenn die virtuelle Tastatur nur auf einem der beiden Bildschirme erscheint. Das Ansichtsfenster wird auf beiden Bildschirmen kleiner, um der virtuellen Tastatur Platz zu machen, sodass auf dem Bildschirm, auf dem die virtuelle Tastatur nicht angezeigt wird, ungenutzter Platz bleibt.

Ein Dual-Screen-Gert, mit seiner virtuellen Tastatur auf einem Bildschirm angezeigt, zeigt, dass die Webseite nur den vertikalen Raum nutzen kann, der nach dem Anzeigen der Tastatur verbleibt, selbst wenn dadurch auf dem anderen Bildschirm leerer Raum bleibt [Ein Dual-Screen-Gert, mit seiner virtuellen Tastatur auf einem Bildschirm angezeigt, zeigt, dass die Webseite nur den vertikalen Raum nutzen kann, der nach dem Anzeigen der Tastatur verbleibt, selbst wenn dadurch auf dem anderen Bildschirm leerer Raum bleibt]

Die VirtualKeyboard-API kann verwendet werden, um die automatische Handhabung der virtuellen Tastatur durch den Browser abzulehnen und stattdessen die vollstndige Kontrolle darber zu bernehmen. Mit der VirtualKeyboard-API erscheint und verschwindet die Tastatur weiterhin bei Bedarf, wenn Formularelemente fokussiert werden, aber das Ansichtsfenster ndert sich nicht, und Sie knnen JavaScript und CSS verwenden, um Ihr Layout anzupassen.

In diesem Artikel

Konzept

Die VirtualKeyboard-API besteht aus drei Teilen:

  • Die VirtualKeyboard Schnittstelle, auf die ber navigator.virtualKeyboard zugegriffen wird, wird verwendet, um die automatische virtuelle Tastaturhandhabung zu deaktivieren, die virtuelle Tastatur programmgesteuert anzuzeigen oder zu verbergen sowie um die aktuelle Position und Gre der virtuellen Tastatur zu erhalten.
  • Die keyboard-inset-* CSS-Umgebungsvariablen liefern Informationen ber die Position und Gre der virtuellen Tastatur.
  • Das virtualkeyboardpolicy Attribut gibt an, ob die virtuelle Tastatur bei contenteditable Elementen erscheinen soll.

Ablehnen des automatischen Verhaltens der virtuellen Tastatur

Um das automatische Verhalten der virtuellen Tastatur des Browsers zu deaktivieren, verwenden Sie navigator.virtualKeyboard.overlaysContent = true. Der Browser verndert dann nicht mehr automatisch die Gre des Ansichtsfensters, um Platz fr die virtuelle Tastatur zu machen, die stattdessen Ihre Inhalte berlagern wird.

Erkennen der Geometrie der virtuellen Tastatur mit JavaScript

Sobald Sie das Standardverhalten des Browsers deaktiviert haben, knnen Sie die aktuelle Geometrie der virtuellen Tastatur mit navigator.virtualKeyboard.boundingRect abrufen und das Layout entsprechend mit CSS und JavaScript anpassen. Zustzlich knnen Sie auf Geometrienderungen hren, z.B. wenn die Tastatur ein- oder ausgeblendet wird, indem Sie das geometrychange Ereignis verwenden.

Dies ist ntzlich, um wichtige UI-Elemente in dem Bereich zu positionieren, der nicht von der virtuellen Tastatur berdeckt wird.

Der folgende Codeausschnitt verwendet das geometrychange Ereignis, um zu erkennen, wann sich die Geometrie der virtuellen Tastatur ndert; anschlieend wird die boundingRect Eigenschaft abgefragt, um die Gre und Position der virtuellen Tastatur zu ermitteln:

js
if ("virtualKeyboard" in navigator) {
  navigator.virtualKeyboard.overlaysContent = true;

  navigator.virtualKeyboard.addEventListener("geometrychange", (event) => {
    const { x, y, width, height } = event.target.boundingRect;
  });
}

Erkennen der Geometrie der virtuellen Tastatur mit CSS-Umgebungsvariablen

Die VirtualKeyboard-API stellt auch die folgenden CSS-Umgebungsvariablen zur Verfgung: keyboard-inset-top, keyboard-inset-right, keyboard-inset-bottom, keyboard-inset-left, keyboard-inset-width und keyboard-inset-height.

Die keyboard-inset-* CSS-Umgebungsvariablen sind ntzlich, um Ihr Layout an das Erscheinen der virtuellen Tastatur mit CSS anzupassen. Sie definieren ein Rechteck durch seine oberen, rechten, unteren und linken Einrckungen vom Rand des Ansichtsfensters. Die width- und height-Variablen sind ebenfalls verfgbar, wenn erforderlich.

Der folgende Codeausschnitt verwendet die keyboard-inset-height CSS-Variable, um Platz fr die virtuelle Tastatur unter der Liste von Nachrichten und dem Eingabefeld in einer chathnlichen Anwendung zu reservieren. Wenn die virtuelle Tastatur verborgen ist, gibt die env() Funktion 0px zurck und der keyboard Rasterbereich ist verborgen. Die Nachrichten- und Eingabeelemente knnen die volle Hhe des Ansichtsfensters einnehmen. Wenn die virtuelle Tastatur erscheint, erhlt der keyboard Rasterbereich die Hhe der virtuellen Tastatur.

html
<ul id="messages"></ul>
<input type="text" />
css
body {
  display: grid;
  margin: 0;
  height: 100vh;
  grid-template:
    "messages" 1fr
    "input" auto
    "keyboard" env(keyboard-inset-height, 0px);
}
js
if ("virtualKeyboard" in navigator) {
  navigator.virtualKeyboard.overlaysContent = true;
}

Steuerung der virtuellen Tastatur bei contenteditable Elementen

Standardmig lsen Elemente, die das contenteditable Attribut verwenden, auch die virtuelle Tastatur aus, wenn sie angetippt oder angeklickt werden. In bestimmten Situationen kann es wnschenswert sein, dieses Verhalten zu verhindern und die virtuelle Tastatur stattdessen nach einem anderen Ereignis anzuzeigen.

Setzen Sie das virtualkeyboardpolicy Attribut auf manual, um die Standardbehandlung der virtuellen Tastatur im Browser zu verhindern und stattdessen mit den show() und hide() Methoden der VirtualKeyboard Schnittstelle selbst zu steuern.

Der folgende Codeausschnitt zeigt, wie das virtualkeyboardpolicy Attribut und die navigator.virtualKeyboard.show() Methode verwendet werden, um die virtuelle Tastatur stattdessen bei einem Doppelklick anzuzeigen:

html
<div contenteditable virtualkeyboardpolicy="manual" id="editor"></div>
js
if ("virtualKeyboard" in navigator) {
  navigator.virtualKeyboard.overlaysContent = true;

  const editor = document.getElementById("editor");
  editor.addEventListener("dblclick", () => {
    navigator.virtualKeyboard.show();
  });
}

Schnittstellen

VirtualKeyboard

Bietet Funktionen zum Abrufen von Tastatur-Layoutkarten und zum Umschalten der Erfassung von Tastenanschlgen der physischen Tastatur.

Erweiterungen fr andere Schnittstellen

Gibt eine Referenz auf die VirtualKeyboard API zurck, um die Kontrolle ber die virtuelle Bildschirmtastatur zu bernehmen.

HTMLElement.virtualkeyboardpolicy

Ein String, der angibt, ob die Standardrichtlinie des Browsers verwendet werden soll, um die virtuelle Tastatur anzuzeigen, wenn das Element fokussiert ist, oder ob das Anzeigen der virtuellen Tastatur manuell gesteuert werden soll.

Spezifikationen

Spezifikation
VirtualKeyboard API
# the-virtualkeyboard-interface

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page