Permissions.query()

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

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() の定義
草案 初期定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
queryChrome 完全対応 43Edge 未対応 なしFirefox 完全対応 46IE 未対応 なしOpera 完全対応 ありSafari 未対応 なしWebView Android 完全対応 43Chrome Android 完全対応 43Firefox Android 完全対応 46Opera Android 完全対応 ありSafari iOS 未対応 なしSamsung Internet Android 完全対応 4.0

凡例

完全対応  
完全対応
未対応  
未対応