aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/permissions/query/index.html
blob: ddef6ca03393fb9cb5d1777289e4195c78ba5c3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
title: Permissions.query()
slug: Web/API/Permissions/query
tags:
  - API
  - Experimental
  - Method
  - Permissions
  - Reference
translation_of: Web/API/Permissions/query
---
<p>{{APIRef("Permissions API")}}{{SeeCompatTable}}</p>

<p><span class="seoSummary">{{domxref("Permissions")}} インターフェイスの <strong><code>Permissions.query()</code></strong> メソッドは、グローバルスコープに対するユーザーのパーミッションの状態を返します。</span></p>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="brush: js">navigator.permissions.query(PermissionDescriptor).then(function(permissionStatus) { ... })</pre>

<h3 id="Parameters" name="Parameters">パラメーター</h3>

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

<div class="note">
<p><strong></strong>: Firefox 44 以降、<a href="/ja/docs/Web/API/Notifications_API">Notifications</a><a href="/ja/docs/Web/API/Push_API">Push</a> のパーミッションは統合されました。 (例えば、ユーザーによって、関連するパーミッションのダイアログにより)パーミッションが与えられた場合、<code>navigator.permissions.query()</code><code>notifications</code><code>push</code> の両方に対して <code>true</code> を返します。</p>
</div>

<div class="note">
<p><strong></strong>: <code>persistent-storage</code> パーミッションは、<a href="https://storage.spec.whatwg.org/">Storage API</a> のとおりに、オリジンがそのストレージとして永続的ボックス(すなわち永続的ストレージ(<a href="https://storage.spec.whatwg.org/#persistence">persistent storage</a>))を使用することを許可します。</p>
</div>

<h3 id="Returns" name="Returns">戻り値</h3>

<p>{{domxref("PermissionStatus")}} オブジェクトに解決される {{jsxref("Promise")}}</p>

<h3 id="Exceptions" name="Exceptions">例外</h3>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">例外</th>
   <th scope="col">説明</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><code>TypeError</code></td>
   <td><code>PermissionDescriptor</code> 情報の取得が何らかの理由で失敗したか、パーミッションが存在しないか現在サポートされていません(例えば、<code>midi</code>、または <code>userVisibleOnly</code> と一緒の <code>push</code> で)。</td>
  </tr>
 </tbody>
</table>

<h2 id="Example" name="Example"></h2>

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

<h2 id="Specification" name="Specification">仕様</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">仕様</th>
   <th scope="col">状態</th>
   <th scope="col">コメント</th>
  </tr>
  <tr>
   <td>{{SpecName('Permissions API','#dom-permissions-query','query()')}}</td>
   <td>{{Spec2('Permissions API')}}</td>
   <td>初期定義</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<div>


<p>{{Compat("api.Permissions.query")}}</p>
</div>