Gamepad API

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

* Some parts of this feature may have varying levels of support.

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

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

接口

Gamepad

表示已连接的游戏控制器。

GamepadButton

表示已连接手柄上的一个按键。

GamepadEvent

表示与控制器相关的事件的事件对象。

实验性 Gamepad 扩展

GamepadHapticActuator

表示控制器中的硬件,用于向用户提供触觉反馈(如果可用)最常见的是振动硬件。

GamepadPose

表示控制器的位置方向(例如,在 3D 空间中的位置和方向)于 WebVR 控制器中。

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

其他接口扩展

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

Window 事件

Window.ongamepadconnected

表示当控制器连接时(当gamepadconnected 事件触发时)运行的处理程序。

Window.ongamepaddisconnected

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

教程与指南

规范

Specification
Gamepad
# gamepad-interface
Gamepad Extensions
# partial-gamepad-interface

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Gamepad
axes
buttons
connected
displayId
DeprecatedNon-standard
hand
Experimental
hapticActuators
Experimental
id
index
mapping
pose
Experimental
Secure context required
Experimental
timestamp
vibrationActuator

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
User must explicitly enable this feature.
Has more compatibility info.

参见