aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/permissions_api/index.html
blob: aa3b289f9df58fb4b529abba0082457054b248de (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
---
title: Permissions API
slug: Web/API/Permissions_API
tags:
  - API
  - Overview
  - Permissions
  - Reference
translation_of: Web/API/Permissions_API
---
<div>{{DefaultAPISidebar("Permissions API")}}</div>

<div class="summary">
<p><span class="seoSummary"><strong>Permissions API</strong> は、現在のコンテキストに起因する API のパーミッションの状態を照会するための一貫したプログラム方法を提供します。 例えば、Permissions API を使用して、特定の API にアクセスするためのパーミッションが付与(granted)または拒否(denied)されているかどうかを確認できます。</span></p>
</div>

<h2 id="Concepts_and_usage" name="Concepts_and_usage">概念と使い方</h2>

<p>歴史的に異なる API は独自のパーミッションを一貫性のない方法で扱います。 例えば、<a href="/ja/docs/Web/API/Notifications_API">Notifications API</a> はパーミッションの状態の明示的なチェックとパーミッションの要求を許可しますが、<a href="/ja/docs/Web/API/Geolocation">Geolocation API</a> はできません(ユーザーが最初のパーミッションの要求を拒否すると問題を引き起こします)。 Permissions API は、パーミッションに関する限り、開発者がより良いユーザーエクスペリエンスを実装できるようにするためのツールを提供します。</p>

<p><code>permissions</code> プロパティが {{domxref("Navigator")}} オブジェクトで利用可能になり、標準の閲覧コンテキストとワーカーコンテキスト({{domxref("WorkerNavigator")}} — したがって、ワーカー内でパーミッションの確認が可能)の両方で、Permissions API 機能へのアクセスを提供する {{domxref("Permissions")}} オブジェクトを返します。</p>

<p>このオブジェクトを取得した後は、{{domxref("Permissions.query()")}} メソッドを使用して特定の API の {{domxref("PermissionStatus")}} で解決される Promise を返すなど、パーミッション関連のタスクを実行できます。</p>

<p>Permissions API を使用してすべての API のパーミッションの状態を照会できるわけではありません。 Permissions に対応している注目すべき API は次のとおりです。</p>

<ul>
 <li><a href="/ja/docs/Web/API/Clipboard_API">Clipboard API</a></li>
 <li><a href="/ja/docs/Web/API/Notifications_API">Notifications API</a></li>
 <li><a href="/ja/docs/Web/API/Push_API">Push API</a></li>
 <li>Web MIDI API</li>
</ul>

<p>今後、より多くの API が Permissions API のサポートを取得する予定です。</p>

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

<p>Location Finder という簡単な例を用意しました。 <a href="https://chrisdavidmills.github.io/location-finder-permissions-api/">例をライブで実行する</a>か、<a href="https://github.com/chrisdavidmills/location-finder-permissions-api/tree/gh-pages">Github でソースコードを見る</a>ことができます。</p>

<p>それがどのように機能するかについてもっと読むには <a href="/ja/docs/Web/API/Permissions_API/Using_the_Permissions_API">Permissions API の使用</a>を見てください。</p>

<h2 id="Interfaces" name="Interfaces">インターフェイス</h2>

<dl>
 <dt>{{domxref("Navigator.permissions")}}{{domxref("WorkerNavigator.permissions")}} {{readonlyinline}}</dt>
 <dd>それぞれメインコンテキストとワーカーコンテキストから {{domxref("Permissions")}} オブジェクトへのアクセスを提供します。</dd>
 <dt>{{domxref("Permissions")}}</dt>
 <dd>パーミッションの照会や取り消しのためのメソッドなど、コアとなる Permission API 機能を提供します。</dd>
 <dt>{{domxref("PermissionStatus")}}</dt>
 <dd>パーミッションの現在の状態、およびパーミッションの状態の変更に応答するためのイベントハンドラーへのアクセスを提供します。</dd>
</dl>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状態</th>
   <th scope="col">備考</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('Permissions API')}}</td>
   <td>{{Spec2('Permissions API')}}</td>
   <td>初期定義</td>
  </tr>
 </tbody>
</table>

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

<div>
<h3 id="Permissions_interface" name="Permissions_interface">Permissions インターフェイス</h3>

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

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li><a href="/ja/docs/Web/API/Permissions_API/Using_the_Permissions_API">Permissions API の使用</a></li>
 <li><a href="https://blog.addpipe.com/using-permissions-api-to-detect-getusermedia-responses/">Permissions API を使用して、ユーザーがカメラへのアクセスを許可または拒否する頻度を検出する</a>(英語)</li>
 <li>{{DOMxRef("Notification.permission")}}</li>
 <li><a href="/ja/docs/Web/Privacy">プライバシー、パーミッション、そして情報セキュリティ</a></li>
</ul>