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
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.
// 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