FileSystemHandle: queryPermission() 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 queryPermission()-Methode des FileSystemHandle-Interfaces fragt den aktuellen Berechtigungsstatus des vorhandenen Handles ab.

Syntax

js
queryPermission(descriptor)

Parameter

descriptor Optional

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

'mode' Optional

Kann entweder 'read' oder 'readwrite' sein.

Rückgabewert

Ein Promise, das mit PermissionStatus.state aufgelöst wird, welcher einer der Werte 'granted', 'denied' oder 'prompt' ist. Es kann auch mit einer der untenstehenden Ausnahmen abgelehnt werden.

Wenn dies mit "prompt" aufgelöst wird, muss die Website requestPermission() aufrufen, bevor irgendwelche Operationen am Handle durchgeführt werden können. Wenn dies mit "denied" aufgelöst wird, werden alle Operationen abgelehnt. Normalerweise werden Handles, die von den lokalen Dateisystem-Handle-Fabriken zurückgegeben werden, anfänglich mit "granted" für ihren Leseberechtigungsstatus aufgelöst. Abgesehen davon, dass der Benutzer die Berechtigung widerruft, wird ein Handle, das von IndexedDB abgerufen wurde, wahrscheinlich auch mit "prompt" aufgelöst.

Ausnahmen

TypeError

Wird ausgelöst, wenn mode mit einem anderen Wert angegeben wird als 'read' oder 'readwrite'.

Beispiele

Die folgende asynchrone Funktion gibt true zurück, wenn dem Nutzer Lese- oder Lese-/Schreibberechtigungen für das Dateihandle erteilt wurden. Die Berechtigung wird angefordert, wenn nicht.

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-querypermission

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
queryPermission
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

Siehe auch