XRInputSourceArray

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The interface XRInputSourceArray represents a live list of WebXR input sources, and is used as the return value of the XRSession property inputSources. Each entry is an XRInputSource representing one input device connected to the WebXR system.

In addition to being able to access the input sources in the list using standard array notation (that is, with index numbers inside square brackets), methods are available to allow the use of iterators and the forEach() method is also available.

Instance properties

The following properties are available on XRInputSourceArray objects.

length Read only Experimental

The number of XRInputSource objects in the list.

Instance methods

The following methods are available on XRInputSourceArray objects. You may also use the features of the Symbol type.

entries() Experimental

Returns an iterator you can use to walk the list of key/value pairs in the list. Each item returned is an array whose first value is the index and whose second value is the XRInputSource at that index.

forEach() Experimental

Iterates over each item in the list, in order from first to last.

keys() Experimental

A list of the keys corresponding to the entries in the input source list.

values() Experimental

Returns an iterator you can use to go through all the values in the list. Each item is a single XRInputSource object.

In addition to these methods, you may use array notation to access items in the list by index For example, the snippet of code below calls a function handleInput(), passing into it the first item in the input source list, if the list isn't empty.

js
let sources = xrSession.inputSources;
if (sources.length > 0) {
  handleInput(sources[0]);
}

Examples

Specifications

Specification
WebXR Device API
# xrinputsourcearray-interface

Browser compatibility

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
XRInputSourceArray
Experimental
[Symbol.iterator]
Experimental
entries()
Experimental
forEach()
Experimental
keys
Experimental
length
Experimental
values
Experimental

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.
See implementation notes.