FileSystemHandle: Methode requestPermission()

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: Dieses Feature ist verfügbar in Web Workers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die requestPermission()-Methode des FileSystemHandle-Interfaces fordert Lese- oder Lese-/Schreibberechtigungen für das Datei-Handle an.

Syntax

js
requestPermission(descriptor)

Parameter

descriptor Optional

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

'mode' Optional

Kann entweder 'read' oder 'readwrite' sein.

Rückgabewert

Ein Promise, das mit PermissionStatus.state auflöst, was eines von 'granted', 'denied' oder 'prompt' ist. Es kann auch mit einem 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 (d.h. ein Cross-Origin-iframe).
  • Es gab keine transiente Benutzeraktivierung wie zum Beispiel einen Tastendruck. Dies schließt ein, wenn das Handle sich in einem Nicht-Window-Kontext befindet, der keine Benutzeraktivierung konsumieren kann, wie z.B. 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, falls diese nicht bereits gewährt 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

BCD tables only load in the browser

Siehe auch