XRSystem: isSessionSupported() 方法
XRSystem 介面的 isSessionSupported() 方法返回一個 Promise,如果使用者裝置支援指定的 WebXR 會話模式,則該 Promise 解析為 true。否則,Promise 解析為 false。
如果沒有可用裝置,或者瀏覽器沒有 XR 裝置的使用許可權,則 Promise 會因一個合適的 DOMException 而被拒絕。
語法
js
isSessionSupported(mode)
引數
返回值
一個 Promise,如果支援指定的會話模式,則解析為 true;否則,Promise 解析為 false。
異常
isSessionSupported() 不會丟擲實際的異常,而是拒絕返回的 Promise,並將一個 name 為以下字串之一的 DOMException 傳遞給拒絕處理程式。
SecurityError-
此功能的用途被
xr-spatial-tracking許可權策略 阻止。
示例
在此示例中,我們看到 isSessionSupported() 被用來檢測裝置是否支援 VR 模式,方法是檢查是否支援 immersive-vr 會話。如果支援,我們設定一個按鈕,顯示“進入 XR”,呼叫 onButtonClicked() 方法,並啟用該按鈕。
如果當前沒有會話正在進行,我們請求 VR 會話,如果成功,則在一個名為 onSessionStarted() 的方法(未顯示)中設定會話。如果在點選按鈕時已有會話正在進行,我們呼叫 xrSession 物件的 end() 方法來關閉 WebXR 會話。
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();
}
}
規範
| 規範 |
|---|
| WebXR Device API # dom-xrsystem-issessionsupported |
瀏覽器相容性
載入中…