FileSystemHandle: requestPermission() 方法
注意:此功能在 Web Workers 中可用。
requestPermission()
方法是 FileSystemHandle
接口的方法,用于请求文件句柄的读或读写权限。
语法
js
requestPermission(descriptor)
参数
descriptor
可选-
一个指定要查询的权限模式的对象。选项如下
'mode'
可选-
可以是
'read'
或'readwrite'
。
返回值
一个 Promise
,它解析为 PermissionStatus.state
,该状态可以是 'granted'
、'denied'
或 'prompt'
之一。它也可能因以下异常而拒绝。
异常
TypeError
-
如果未指定参数或
mode
不是'read'
或'readwrite'
,则抛出此异常。 SecurityError
DOMException
-
在以下情况之一中抛出此异常
- 该方法在与顶级上下文(即跨域 iframe)同源 的上下文中调用。
- 没有瞬态用户激活,例如按钮按下。这包括句柄在无法使用用户激活的非窗口上下文中时,例如工作线程。
安全性
瞬态用户激活 是必需的。用户必须与页面或 UI 元素交互才能使用此功能。
示例
以下异步函数将在未授予权限的情况下请求权限。
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-requestpermission |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。