blob: abfad371081d32dabf9bb197f60152401fb73e6d (
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
---
title: Bluetooth.requestDevice()
slug: Web/API/Bluetooth/requestDevice
tags:
- API
- Web蓝牙
- 蓝牙
translation_of: Web/API/Bluetooth/requestDevice
---
<p>{{APIRef()}}{{SeeCompatTable}}</p>
<p>{{domxref("Bluetooth")}}接口的<strong><code>Bluetooth.requestDevice()</code></strong>方法返回一个带有对应options的{{domxref("BluetoothDevice")}}对象的{{jsxref("Promise")}}对象. 如果没有蓝牙设备选择界面,则此方法返回与条件匹配的第一个设备。</p>
<h2 id="语法">语法</h2>
<pre class="syntaxbox">Bluetooth.requestDevice(options).then(function(bluetoothDevice) { ... })</pre>
<h3 id="返回值">返回值</h3>
<p>带有{{domxref("BluetoothDevice")}} 对象的{{jsxref("Promise")}} 对象.</p>
<h3 id="参数">参数</h3>
<dl>
<dt>options </dt>
<dd>设置设备请求选项的对象. 可用的选项是:
<ul>
<li><code>filters[]</code>: 一个BluetoothScanFilters数组。 此过滤器由一个BluetoothServiceUUID数组,一个名称参数和一个namePrefix参数组成。</li>
<li><code>optionalServices[]</code>: 一个BluetoothServiceUUID数组。</li>
<li><code>acceptAllDevices</code>: boolean 表示请求脚本可以接受所有蓝牙设备。 默认值为false。</li>
</ul>
</dd>
</dl>
<h2 id="示例">示例</h2>
<pre><code>//扫描选项匹配任何设备广播:
//. 标准心率服务。
//. 两个16位服务ID 0x1802和0x1803。
//. 专有的128位UUID服务c48e6067-5295-48d3-8d5c-0395f61792b1。
//. 名称为“设备名”的设备。
//. 名称以“前缀”开头的设备。
//
//如果设备包含电池服务,
//即使设备不通告该服务,也可以访问电池服务。
let options = {
filters: [
{services: ['heart_rate']},
{services: [0x1802, 0x1803]},
{services: ['c48e6067-5295-48d3-8d5c-0395f61792b1']},
{name: '设备名'},
{namePrefix: '前缀'}
],
optionalServices: ['battery_service']
}
navigator.bluetooth.requestDevice(options).then(function(device) {
console.log('名称: ' + device.name);
// 在此处实现设备调用
})
.catch(function(error) {
console.log("出现错误: " + error);
});</code></pre>
<p>查看<a href="https://webbluetoothcg.github.io/web-bluetooth/#example-filter-by-services">详细示例</a> </p>
<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 Bluetooth', '#dom-bluetooth-requestdevice', 'requestDevice()')}}</td>
<td>{{Spec2('Web Bluetooth')}}</td>
<td>Initial definition.</td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatChrome (56)}}</td>
<td> </td>
<td> </td>
<td>{{CompatOpera(43)}}</td>
<td> </td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android Webview</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatNo}}</td>
<td>{{CompatChrome (56)}}</td>
<td> </td>
<td> </td>
<td> </td>
<td>{{CompatOperaMobile(43)}}</td>
<td> </td>
</tr>
</tbody>
</table>
</div>
|