@threlte/xr
Version:
Tools to more easily create VR and AR experiences with Threlte
21 lines (20 loc) • 612 B
JavaScript
/**
* Gets the support state of requested session mode.
* @param mode Session mode: 'inline' | 'immersive-vr' | 'immersive-ar'
* @returns The current support state
*/
export const getXRSupportState = async (mode) => {
if (navigator?.xr === undefined) {
return 'unsupported';
}
if (!window.isSecureContext) {
return 'insecure';
}
try {
const supported = await navigator.xr.isSessionSupported(mode);
return supported ? 'supported' : 'unsupported';
}
catch (error) {
return error.name === 'SecurityError' ? 'blocked' : 'unsupported';
}
};