Permissions.query()

Baseline 2022

Newly available

Since September 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Permissions.query()Permissions インターフェイスのメソッドで、グローバルスコープに対するユーザーの権限の状態を返します。

構文

js
query(permissionDescriptor)

引数

permissionDescriptor

名前と値のペアのカンマ区切りリストで構成される、query 操作のオプションを設定するオブジェクト。 利用可能なオプションは次のとおりです。

name

権限を照会したい API の名前です。対応している値の集合はブラウザーごとに異なります。 Firefox の値はこちら、 Chromium の値はこちら、 WebKit の値はこちらにあります。

userVisibleOnly

(Push のみ。 Firefox は対応していません。 下記のブラウザーの互換性の節を参照してください)すべてのメッセージについて通知を表示するか、サイレントプッシュ通知を送信できるかを示します。 既定値は false です。

sysex (Midi のみ)

システムエクスクルーシブメッセージが必要か受信するかどうかを示します。 既定値は false です。

メモ: Firefox 44 以降、通知プッシュの権限が統合されました。 (例えば、ユーザーによって、関連する権限のダイアログにより)権限が与えられた場合、 navigator.permissions.query()notificationspush の両方に対して true を返します。

メモ: persistent-storage 権限は、ストレージ API のとおりに、オリジンがそのストレージとして永続的ボックス(すなわち永続的ストレージ(persistent storage))を使用することを許可します。

返値

Promise で、 PermissionStatus オブジェクトに解決します。

例外

例外 説明
TypeError PermissionDescriptor 情報の取得が何らかの理由で失敗したか、その権限が存在しないか、現在対応していない(例えば midiuserVisibleOnly 付きの push など)。

js
navigator.permissions.query({ name: "geolocation" }).then((result) => {
  if (result.state === "granted") {
    showLocalNewsWithGeolocation();
  } else if (result.state === "prompt") {
    showButtonToEnableLocalNews();
  }
  // 権限が拒否された場合は何もしないでください。
});

仕様書

Specification
Permissions
# dom-permissions-query

ブラウザーの互換性

BCD tables only load in the browser