Permissions.query()

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

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

構文

navigator.permissions.query(PermissionDescriptor).then(function(permissionStatus) { ... })

パラメーター

PermissionDescriptor
名前と値のペアのカンマ区切りリストで構成される、query 操作のオプションを設定するオブジェクト。 利用可能なオプションは次のとおりです。
  • name: パーミッションを照会したい API の名前。 有効な値は 'accelerometer''accessibility-events''ambient-light-sensor''background-sync''camera'​'clipboard-read''clipboard-write''geolocation''gyroscope''magnetometer''microphone''midi''notifications''payment-handler''persistent-storage''push' です。
  • userVisibleOnly: (Push のみ。 Firefox はサポートしていません。 下記のブラウザーの互換性のセクションを参照してください)すべてのメッセージについて通知を表示するか、サイレントプッシュ通知を送信できるかを示します。 デフォルトは false です。
  • sysex: (Midi のみ)システムエクスクルーシブメッセージが必要か受信するかどうかを示します。 デフォルトは false です。

: Firefox 44 以降、NotificationsPush のパーミッションは統合されました。 (例えば、ユーザーによって、関連するパーミッションのダイアログにより)パーミッションが与えられた場合、navigator.permissions.query()notificationspush の両方に対して true を返します。

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

戻り値

PermissionStatus オブジェクトに解決される Promise

例外

例外 説明
TypeError PermissionDescriptor 情報の取得が何らかの理由で失敗したか、パーミッションが存在しないか現在サポートされていません(例えば、midi、または userVisibleOnly と一緒の push で)。

navigator.permissions.query({name:'geolocation'}).then(function(result) {
 if (result.state == 'granted') {
   showLocalNewsWithGeolocation();
 } else if (result.state == 'prompt') {
   showButtonToEnableLocalNews();
 }
 // パーミッションが拒否された場合は何もしないでください。
});

仕様

仕様 状態 コメント
Permissions
query() の定義
草案 初期定義

ブラウザーの互換性

BCD tables only load in the browser