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
インターフェイスのメソッドで、グローバルスコープに対するユーザーの権限の状態を返します。
構文
query(permissionDescriptor)
引数
permissionDescriptor
-
名前と値のペアのカンマ区切りリストで構成される、
query
操作のオプションを設定するオブジェクト。 利用可能なオプションは次のとおりです。name
-
権限を照会したい API の名前です。対応している値の集合はブラウザーごとに異なります。 Firefox の値はこちら、 Chromium の値はこちら、 WebKit の値はこちらにあります。
userVisibleOnly
-
(Push のみ。 Firefox は対応していません。 下記のブラウザーの互換性の節を参照してください)すべてのメッセージについて通知を表示するか、サイレントプッシュ通知を送信できるかを示します。 既定値は
false
です。 sysex
(Midi のみ)-
システムエクスクルーシブメッセージが必要か受信するかどうかを示します。 既定値は
false
です。
メモ:
Firefox 44 以降、通知とプッシュの権限が統合されました。 (例えば、ユーザーによって、関連する権限のダイアログにより)権限が与えられた場合、 navigator.permissions.query()
は notifications
と push
の両方に対して true
を返します。
メモ: persistent-storage
権限は、ストレージ API のとおりに、オリジンがそのストレージとして永続的ボックス(すなわち永続的ストレージ(persistent storage))を使用することを許可します。
返値
Promise
で、 PermissionStatus
オブジェクトに解決します。
例外
例外 | 説明 |
---|---|
TypeError |
PermissionDescriptor 情報の取得が何らかの理由で失敗したか、その権限が存在しないか、現在対応していない(例えば midi や userVisibleOnly |
例
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