XRInputSourceArray: entries() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Want more browser support for this feature? Tell us why.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The XRInputSourceArray interface's
entries() method returns a JavaScript
iterator
which can then be used to iterate over the key/value pairs in the input source
array. Each key is the index of an input source in the array, and each value is
the corresponding XRInputSource object.
Most frequently, you will use this in tandem with statements such as
for...of.
Syntax
entries()
Parameters
None.
Return value
An iterator
which yields an [index, inputSource] pair for each XRInputSource object
included in the input source array.
Examples
This example snippet gets the list of inputs for a session and tries to handle each type of input device it supports using.
let sources = xrSession.inputSources;
for (const [index, input] of sources.entries()) {
if (input.gamepad) {
checkGamepad(input.gamepad);
} else if (
input.targetRayMode === "tracked-pointer" &&
input.handedness === player.handedness
) {
/* Handle main hand controller */
handleMainHandInput(input);
} else {
/* Handle other inputs */
}
}
For each input in the list, gamepad inputs are dispatched to
a checkGamepad() with the input's Gamepad object, taken from
its gamepad property, as an input
For other devices, we look for tracked-pointer devices in the player's
main hand, dispatching those to a handleMainHandInput() method.
Specifications
| Specification |
|---|
| WebXR Device API> # xrinputsourcearray> |