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-/Schreibrechte für das File-Handle an.

Syntax

js
requestPermission(descriptor)

Parameter

descriptor Optional

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

'mode' Optional

Kann entweder 'read', 'write' oder 'readwrite' sein.

Rückgabewert

Ein Promise, das mit PermissionStatus.state aufgelöst wird, was entweder 'granted', 'denied' oder 'prompt' ist. Es kann auch mit einer der untenstehenden Ausnahmen fehlschlagen.

Ausnahmen

TypeError

Wird ausgelöst, wenn kein Parameter angegeben wird oder der mode nicht 'read', 'write', 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. eine Cross-Origin-iframe).
  • Es gab keine vorübergehende Benutzeraktivierung wie einen Tastendruck. Dies schließt ein, wenn das Handle sich in einem Nicht-Window-Kontext befindet, der keine Benutzeraktivierung konsumieren kann, wie etwa ein Worker.

Sicherheit

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

Beispiele

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