FileSystemHandle: phương thức requestPermission()
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Phương thức requestPermission() của giao diện FileSystemHandle yêu cầu quyền đọc hoặc đọc-ghi cho file handle.
Cú pháp
requestPermission(descriptor)
Tham số
descriptorOptional-
Một object chỉ định chế độ quyền cần truy vấn. Các tùy chọn như sau:
'mode'Optional-
Có thể là
'read','write'hoặc'readwrite'.
Giá trị trả về
Một Promise được resolve với PermissionStatus.state là một trong 'granted', 'denied' hoặc 'prompt'. Nó cũng có thể reject với một trong các ngoại lệ bên dưới.
Ngoại lệ
TypeError-
Được ném ra nếu không chỉ định tham số nào hoặc
modekhông phải là'read','write'hoặc'readwrite'. SecurityErrorDOMException-
Được ném ra trong một trong các trường hợp sau:
- Phương thức được gọi trong ngữ cảnh không cùng origin với ngữ cảnh cấp cao nhất, tức một iframe khác origin.
- Không có kích hoạt người dùng tạm thời, chẳng hạn một lần nhấn nút. Điều này bao gồm cả trường hợp handle nằm trong ngữ cảnh không phải
Windowkhông thể tiêu thụ kích hoạt người dùng, chẳng hạn worker.
Bảo mật
Yêu cầu có kích hoạt người dùng tạm thời. Người dùng phải tương tác với trang hoặc một phần tử giao diện để tính năng này hoạt động.
Ví dụ
Hàm bất đồng bộ sau yêu cầu quyền nếu chúng chưa được cấp.
// fileHandle là một FileSystemFileHandle
// withWrite là một boolean được đặt thành true nếu muốn ghi
async function verifyPermission(fileHandle, withWrite) {
const opts = {};
if (withWrite) {
opts.mode = "readwrite";
}
// Kiểm tra xem chúng ta đã có quyền chưa, nếu có thì trả về true.
if ((await fileHandle.queryPermission(opts)) === "granted") {
return true;
}
// Yêu cầu quyền với file, nếu người dùng cấp quyền thì trả về true.
if ((await fileHandle.requestPermission(opts)) === "granted") {
return true;
}
// Người dùng không cấp quyền, trả về false.
return false;
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| File System Access> # api-filesystemhandle-requestpermission> |