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 Schreib-Lese-Berechtigungen für das Dateihandle an.

Syntax

js
requestPermission(descriptor)

Parameter

descriptor Optional

Ein Objekt, das den Berechtigungsmodus angibt, der abgefragt werden soll. Optionen sind wie folgt:

'mode' Optional

Kann entweder 'read' oder 'readwrite' sein.

Rückgabewert

Ein Promise, das mit PermissionStatus.state aufgelöst wird, welches eines von 'granted', 'denied' oder 'prompt' ist. Es kann auch mit einer der unten stehenden 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 vorübergehende Benutzeraktivierung wie einen Tastendruck. Dies schließt ein, wenn das Handle in einem Nicht-Window-Kontext ist, der keine Benutzeraktivierung konsumieren kann, wie z. B. ein Worker.

Sicherheit

Vorübergehende Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit diese Funktion funktioniert.

Beispiele

Die folgende asynchrone Funktion fordert Berechtigungen an, falls sie 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