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
|
---
title: Navigator.vibrate()
slug: Web/API/Navigator/vibrate
translation_of: Web/API/Navigator/vibrate
---
<p>{{APIRef("HTML DOM")}}</p>
<p><strong><code>Navigator.vibrate()</code></strong> 方法使设备(有震动硬件)产生有频率的震动。若设备不支持震动,该方法将无效。若某震动方式已经在进行中(当该方法调用时),则前一个震动方式停止,新的取而代之。</p>
<p>该方法若因为提供无效的参数使得无法使设备震动,它将返回false,否则返回true。若振动方案导致长时间的震动,它会被截断:最大震动时长取决于每个浏览器的具体实现。</p>
<h2 id="Syntax" name="Syntax">语法</h2>
<pre class="syntaxbox">var <em>successBool</em> = window.navigator.vibrate(<em><var>pattern</var></em>);
</pre>
<dl>
<dt><em>pattern</em></dt>
<dd>提供一个震动、暂停间隔的模式。每一个值表示交替震动或者暂停的毫秒数。你可以提供一个单个的值(震动一次的毫秒数)或者一个包含整数的数组来交替的震动、暂停、震动。详情参见 <a href="/en-US/docs/WebAPI/Vibration" title="/en-US/docs/WebAPI/Vibration">Vibration API</a>。</dd>
</dl>
<p>传递一个 <code>0</code>、一个空数组或者一个元素全部为 <code>0</code> 的数组会结束当前正在运行中的震动模式。</p>
<h2 id="示例">示例</h2>
<pre class="brush: js">window.navigator.vibrate(200); // vibrate for 200ms
window.navigator.vibrate([100,30,100,30,100,200,200,30,200,30,200,200,100,30,100,30,100]); // Vibrate 'SOS' in Morse.
</pre>
<h2 id="规范">规范</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('Vibration API')}}</td>
<td>{{Spec2('Vibration API')}}</td>
<td>Linked to spec is the latest editor's draft; W3C version is a REC.</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</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatNo}}</td>
<td>{{CompatGeckoDesktop("11.0")}} {{property_prefix("moz")}}<br>
{{CompatGeckoDesktop("16.0")}} (no prefix) [1]</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</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>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatVersionUnknown}} {{property_prefix("webkit")}}<br>
{{CompatVersionUnknown}} (unprefixed) [2][3]</td>
<td>{{CompatVersionUnknown}} {{property_prefix("webkit")}}<br>
{{CompatVersionUnknown}} (unprefixed) [2][3]</td>
<td>{{CompatGeckoMobile("11.0")}} {{property_prefix("moz")}}<br>
{{CompatGeckoMobile("16.0")}} (no prefix) [1]</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}<sup>[3]</sup></td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] 当震动模式太长或者其中一次震动的时长太长时,截至 Firefox 26,Gecko 将会抛出一个异常,而不是返回 <code>false</code> ({{bug("884935")}})。从 Firefox 32 开始,Gecko 返回 <code>true</code>,但是会将该模式截断 ({{bug(1014581)}})。</p>
<p>[2] 从 Chrome 55 开始,跨域的 iframe 中不支持该 API。</p>
<p>[3] 从 Chrome 60/Opera 47 开始,该方法需要一个用户手势。否则会返回 <code>false</code>。</p>
<h2 id="更多">更多</h2>
<ul>
<li><a href="/en-US/docs/WebAPI/Vibration" title="/en-US/docs/WebAPI/Vibration">Vibration API</a></li>
</ul>
|