aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/usb/requestdevice/index.html
blob: 5ec208774ec2959f6a7d74ae6b83bac44ff3e950 (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
---
title: USB.requestDevice()
slug: Web/API/USB/requestDevice
tags:
  - API
  - USB
  - WebUSB
  - WebUSB API
  - getDevices()
  - Определение
  - метод
translation_of: Web/API/USB/requestDevice
---
<p>{{APIRef("WebUSB API")}}{{SeeCompatTable}}{{securecontext_header}}</p>

<p>Метод <strong><code>requestDevice()</code></strong> интерфейса {{domxref("USB")}} возвращает {{jsxref("Promise")}}, возвращающий экземпляр {{domxref("USBDevice")}}, если необходимое устройство было найдено. Вызов этого метода начинает процесс соединения браузера с устройством.</p>

<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox notranslate"><em>USB</em>.requestDevice([<em>filters</em>])</pre>

<h3 id="Параметры">Параметры</h3>

<dl>
 <dt>filters</dt>
 <dd>Массив объектов, определяющих фильтры для устройств, к которым требуется подключиться. Каждый фильтр может содержать следующие свойства:
 <ul>
  <li><code>vendorId</code> - ИД производителя (USB VID)</li>
  <li><code>productId</code> - ИД устройства USB PID</li>
  <li><code>classCode</code> - код класса функциональности устройства</li>
  <li><code>subclassCode</code> - код подкласса</li>
  <li><code>protocolCode</code> - код протокола</li>
  <li><code>serialNumber</code> - серийный номер</li>
 </ul>
 </dd>
</dl>

<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>

<p>{{JSxRef("Promise")}}, возвращающий экземпляр {{DOMxRef("USBDevice")}}.</p>

<h2 id="Пример">Пример</h2>

<p>Этот пример запрашивает любое из перечисленных USB-устройств. Обратите внимание, указаны два разных PID. Оба присутствуют в списке фильтров для <code>requestDevice()</code>. При этом браузер покажет окно для выбора и подтверждения доступа к устройству. Только выбранное пользователем устройство будет передано в <code>then()</code>.</p>

<p>Количество фильтров не определяет количество устройств, показываемых браузером. Например, если найдено только USB-устройство с product ID <code>0xa800</code>, браузер отобразит только одно устройство. Но, если браузер определит два устройства, совпадающих с первым фильтром, и ещё одно, совпадающее со вторым, будут показаны все три устройства.</p>

<pre class="brush: js notranslate">const filters = [
        {vendorId: 0x1209, productId: 0xa800},
        {vendorId: 0x1209, productId: 0xa850}
      ];
navigator.usb.requestDevice({filters: filters})
.then(usbDevice =&gt; {
  console.log("Product name: " + usbDevice.productName);
})
.catch(e =&gt; {
  console.log("There is no device. " + e);
});
</pre>

<h2 id="Спецификации">Спецификации</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Спецификация</th>
   <th scope="col">Статус</th>
   <th scope="col">Комментарий</th>
  </tr>
  <tr>
   <td>{{SpecName("Web USB","#dom-usb-requestdevice-options-options","requestDevice")}}</td>
   <td>{{Spec2("Web USB")}}</td>
   <td>Изначальное определение.</td>
  </tr>
 </tbody>
</table>

<h2 id="Совместимость">Совместимость</h2>



<p>{{Compat("api.USB.requestDevice")}}</p>