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 以降、Notifications と Push のパーミッションは統合されました。 (例えば、ユーザーによって、関連するパーミッションのダイアログにより)パーミッションが与えられた場合、navigator.permissions.query()
は notifications
と push
の両方に対して 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