Syntax
js
isSessionSupported(mode)
Parameters
Return value
A Promise that resolves to true if the specified session
mode is supported; otherwise the promise resolves to false.
Exceptions
Rather than throwing true exceptions, isSessionSupported() rejects the
returned promise, passing to the rejection handler a DOMException whose
name is one of the following strings.
SecurityError-
Use of this feature is blocked by an
xr-spatial-trackingPermissions Policy.
Examples
In this example, we see isSessionSupported() used to detect whether or not
the device supports VR mode by checking to see if an immersive-vr session
is supported. If it is, we set up a button to read "Enter XR", to call a method
onButtonClicked(), and enable the button.
If no session is already underway, we request the VR session and, if successful, set up
the session in a method called onSessionStarted(), not shown. If a session
is already underway when the button is clicked, we call the
xrSession object's end() method to shut
down the WebXR session.
js
if (navigator.xr) {
navigator.xr.isSessionSupported("immersive-vr").then((isSupported) => {
if (isSupported) {
userButton.addEventListener("click", onButtonClicked);
userButton.textContent = "Enter XR";
userButton.disabled = false;
}
});
}
function onButtonClicked() {
if (!xrSession) {
navigator.xr.requestSession("immersive-vr").then((session) => {
xrSession = session;
// onSessionStarted() not shown for reasons of brevity and clarity.
onSessionStarted(xrSession);
});
} else {
// Button is a toggle button.
xrSession.end();
}
}
Specifications
| Specification |
|---|
| WebXR Device API # dom-xrsystem-issessionsupported |