Permissions.query()
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022年9月.
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> | 
ブラウザーの互換性
Loading…