FileSystemHandle: requestPermission() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die requestPermission() Methode der FileSystemHandle Schnittstelle fordert Lese- oder Lese-/Schreibberechtigungen für den Datei-Handle an.

Syntax

js
requestPermission(descriptor)

Parameter

descriptor Optional

Ein Objekt, das den Abfragemodus für die Berechtigung angibt. Optionen sind wie folgt:

'mode' Optional

Kann entweder 'read' oder 'readwrite' sein.

Rückgabewert

Ein Promise, das mit PermissionStatus.state aufgelöst wird, was einer der Werte 'granted', 'denied' oder 'prompt' ist. Es kann auch mit einer der unten aufgeführten Ausnahmen abgelehnt werden.

Ausnahmen

TypeError

Wird ausgelöst, wenn kein Parameter angegeben ist oder der mode nicht 'read' oder 'readwrite' ist.

SecurityError DOMException

Wird in einem der folgenden Fälle ausgelöst:

  • Die Methode wurde in einem Kontext aufgerufen, der nicht same-origin mit dem Top-Level-Kontext ist (z.B. ein Cross-Origin-IFrame).
  • Es gab keine transiente Benutzeraktivierung wie das Drücken einer Taste. Dies umfasst auch, wenn der Handle sich in einem nicht-Fenster-Kontext befindet, der keine Benutzeraktivierung konsumieren kann, wie etwa ein Worker.

Sicherheit

Transiente Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit dieses Feature funktioniert.

Beispiele

Die folgende asynchrone Funktion fordert Berechtigungen an, wenn diese nicht bereits erteilt wurden.

js
// fileHandle is a FileSystemFileHandle
// withWrite is a boolean set to true if write

async function verifyPermission(fileHandle, withWrite) {
  const opts = {};
  if (withWrite) {
    opts.mode = "readwrite";
  }

  // Check if we already have permission, if so, return true.
  if ((await fileHandle.queryPermission(opts)) === "granted") {
    return true;
  }

  // Request permission to the file, if the user grants permission, return true.
  if ((await fileHandle.requestPermission(opts)) === "granted") {
    return true;
  }

  // The user did not grant permission, return false.
  return false;
}

Spezifikationen

Specification
File System Access
# api-filesystemhandle-requestpermission

Browser-Kompatibilität

Siehe auch