我有一个页面,它使用<object data="" type="text/html"></object>
标签在自身内部加载其他内容页面。各个页面在运行之前需要做的一件事是使用以下方法确定是否支持其 XR 内容:
async function DetermineXRSupport(){
if (navigator.xr) {
let supportsXR = await navigator.xr.isSessionSupported("immersive-vr");
if(supportsXR ){
//Configure UI, allow progression, etc
}
}
}
这在 90% 的时间里都有效。但是,如果由于某种原因immersive-vr
在父页面加载后失去支持,则所有子内容页面将在解决承诺时返回错误true
值,因为在 SteamVR 打开时初始页面加载期间设置了导航器。
场景:SteamVR 在后台运行,您加载网页,成功体验一个 XR 演示,然后 SteamVR 关闭/崩溃/等。当您从列表中选择下一个内容项时,或尝试初始化另一个xrSession
. 创建 xrSession 时会引发错误,因为immersive-vr
不再受支持。
有没有办法在不重新加载整个网页的情况下重新刷新导航器?