FileSystemHandle:queryPermission() 方法
注意:此功能在Web Workers中可用。
queryPermission()
是FileSystemHandle
接口的方法,用于查询当前句柄的当前权限状态。
语法
js
queryPermission(descriptor)
参数
descriptor
可选-
一个对象,用于指定要查询的权限模式。选项如下所示
'mode'
可选-
可以是
'read'
或'readwrite'
。
返回值
PermissionStatus.state
,其值为'granted'
、'denied'
或'prompt'
之一。
如果返回“prompt”,则网站必须在对句柄执行任何操作之前调用requestPermission()
。如果返回“denied”,则任何操作都将被拒绝。通常,由本地文件系统句柄工厂返回的句柄最初会为其读取权限状态返回“granted”。但是,除了用户撤销权限之外,从 IndexedDB 中检索到的句柄也可能返回“prompt”。
异常
TypeError
-
如果
mode
指定的值不是'read'
或'readwrite'
,则抛出此异常。
示例
以下异步函数在用户已授予文件句柄的读取或读写权限时返回 true。如果未授予权限,则会请求权限。
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;
}
规范
规范 |
---|
文件系统访问 # api-filesystemhandle-querypermission |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。