FileSystemHandle.requestPermission()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

FileSystemHandle インターフェイスの requestPermission() メソッドは、ファイルハンドルの読み取りまたは読み書きの許可を要求します。

構文

js
requestPermission(fileSystemHandlePermissionDescriptor)

引数

FileSystemHandlePermissionDescriptor 省略可

要求する許可のモードを指定するオブジェクトです。以下のオプションが設定可能です。

  • : 'mode': 'read' または 'readwrite' のいずれかの値をとります。

返値

'granted''denied''prompt' のいずれかである PermissionStatus.state です。

例外

TypeError

引数が指定されていないか、mode'read' でも 'readwrite' でもないとき投げられます。

以下の非同期関数は、許可が与えられていなければ許可を要求します。

js
// fileHandle は FileSystemFileHandle
// withWrite は書き込みのとき true となる boolean 値

async function verifyPermission(fileHandle, withWrite) {
  const opts = {};
  if (withWrite) {
    opts.mode = "readwrite";
  }

  // 既に許可されているかを確認し、許可されていれば true を返す
  if ((await fileHandle.queryPermission(opts)) === "granted") {
    return true;
  }

  // ファイル操作の許可を要求し、ユーザーが許可したら true を返す
  if ((await fileHandle.requestPermission(opts)) === "granted") {
    return true;
  }

  // ユーザーが許可しなかったので、false を返す
  return false;
}

仕様書

Specification
File System Access
# api-filesystemhandle-requestpermission

ブラウザーの互換性

BCD tables only load in the browser

関連情報