这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

 

Gamepad API 可以给予开发者一种简单、统一的方式来识别并响应游戏控制器(手柄)。其中包含了三个接口、两个事件、一个特殊函数,用来响应控制器的连接与断开、获取其他关于控制器的信息以及识别当前是哪个按键或是哪个控制器被按下了。

接口

Gamepad
表示已连接的游戏控制器。
GamepadButton
表示已连接手柄上的一个按键。
GamepadEvent
表示与控制器相关的事件的事件对象。

实验性 Gamepad 扩展

GamepadHapticActuator
表示控制器中的硬件,用于向用户提供触觉反馈(如果可用)最常见的是振动硬件。
GamepadPose
表示控制器的位置方向(例如, 在3D 空间中的位置和方向)于 WebVR 控制器中。

另请参阅  Gamepad 接口扩展,来获取上方的功能的相关信息。

其他接口扩展

Navigator.getGamepads()
Navigator 对象中的一个扩展。会返回一个 名为Gamepad 的数组对象,其中每个数组元素对应一个已连接的控制器。

Window 事件

Window.ongamepadconnected
表示当控制器连接时(当gamepadconnected 事件触发时)运行的处理程序。
Window.ongamepaddisconnected
表示当控制器断开连接时(当gamepaddisconnected 事件触发时)运行的处理程序。

教程与指南

规范

规范 状态 备注
Gamepad Extensions Editor's Draft Defines the Experimental Gamepad extensions.
Gamepad
The Gamepad API specification
Working Draft Initial definition

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support

35

21 — 34 webkit

Yes

29

24 — 281

No

22

15 — 21 webkit

No
Gamepad() constructor3512

29

24 — 281

No22 No
axes

35

21 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
buttons

35

21 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
connected

35

25 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
displayId Yes2 315565 No ? ?
hand No15 Yes6 7 No No No
hapticActuators No15 Yes6 7 No No No
id

35

21 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
index

35

21 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
mapping

35

21 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
pose No15 Yes6 7 No No No
timestamp

35

21 — 34 webkit

12

29

24 — 281

No

22

15 — 21 webkit

No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No

35

25 — 34 webkit

Yes32

22

15 — 21 webkit

No Yes
Gamepad() constructor No35 Yes3222 No Yes
axes No

35

25 — 34 webkit

Yes32

22

15 — 21 webkit

No Yes
buttons No

35

25 — 34 webkit

Yes32

22

15 — 21 webkit

No Yes
connected No

35

25 — 34 webkit

Yes32

22

15 — 21 webkit

No Yes
displayId No Yes4 ? ? ? ? Yes
hand No No No No No No No
hapticActuators No No No No No No No
id No

35

25 — 34 webkit

Yes32 No No Yes
index No

35

25 — 34 webkit

Yes32 No No Yes
mapping No

35

25 — 34 webkit

Yes32

22

15 — 21 webkit

No Yes
pose No No No No No No No
timestamp No

35

25 — 34 webkit

Yes32

22

15 — 21 webkit

No Yes

1. From version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

2. Only works on desktop in an experimental version of Chrome (other builds won't return any devices when Navigator.getVRDisplays() is invoked).

3. This feature is behind the WebVR preference. To change preferences in Chrome, visit chrome://flags.

4. Currently supported only by Google Daydream.

5. Currently only Windows support is enabled by default. Mac support is available in Firefox Nightly.

6. The flag is enabled by default in Firefox Nightly and Beta, versions 55 and above.

7. This feature is behind the dom.gamepad-extensions.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

另请参阅

文档标签和贡献者

此页面的贡献者: zsxeee
最后编辑者: zsxeee,