FileSystemHandle:queryPermission() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,并且在某些或所有支持的浏览器中可用。

注意:此功能在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 的浏览器中加载。

另请参阅