profiles returns an array of strings, each describing a configuration profile for the input source. The profile strings are listed in order of specificity, with the most specific profile listed first.
profiles list is always empty when the WebXR
session is in inline mode.
An array of strings, each describing one configuration profile
for the input device represented by the
XRInputSource object. Each input
profile specifies the preferred visual representation and behavior of the input source.
An input profile name is a string describing a visual representation and behavior the input source may be configured to use. Each string:
- Has no spaces; instead, words are separated by hyphen ("-") characters
- If the platform makes it available, the USB vendor and product ID may be provided but cannot be relied upon
- Does not uniquely identify a specific device; rather, it identifies a configuration that the product is capable of using
- Does not provide information about handedness of the device, if applicable
The WebXR Input Profiles Registry is used by device developers and browser developers to attempt to ensure that a given device will report the same profile strings regardless of which browser or other user agent you use.
The following input profile names are generic and can serve as fallbacks that describe the devices in the roughest sense.
The list in
profiles is in order of reverse specificity; that is, the most precise description is first, and the least precise description is last. The first entry in the list is typically indicative of the precise model of the controller, or of a model with which the controller is compatible.
For example, entry 0 in
profiles for an Oculus Touch controller is
oculus-touch. The next entry is
generic-trigger-squeeze-thumbstick, indicating a generic device with a trigger, a squeeze control, and a thumbstick. While the Oculus Touch controller actually has a thumbpad rather than a thumbstick, the overall description is "close enough" that the details within the profile matching the name will let the controller be interpreted usefully.
inputSource.profiles; // ['oculus-touch', 'generic-trigger-squeeze-thumbstick']
|WebXR Device API |
BCD tables only load in the browser