XRSystem: isSessionSupported() メソッド
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
XRSystem の isSessionSupported() メソッドは、指定した WebXR セッションモードがユーザーの WebXR 端末で対応している場合は true に解決するプロミスを返します。そうでない場合、プロミスは false に解決されます。
利用できる端末がないか、ブラウザーに XR 端末を使用する権限がない場合、プロミスは適切な DOMException で拒否されます。
構文
isSessionSupported(mode)
引数
返値
プロミス (Promise) で、指定したセッションモードを対応している場合は true に解決し、そうでない場合は false に解決します。
例外
isSessionSupported() は実際の例外を発生させるのではなく、DOMException という名前の文字列をハンドラーに渡して、返されたプロミスを拒否します。
SecurityError-
この機能の使用が
xr-spatial-tracking権限ポリシーによってブロックされています。
例
この例では、 isSessionSupported() を使用して、 immersive-vr セッションに対応しているかどうかを調べることで、端末が VR モードに対応しているかどうかを検出しています。もし対応していれば、 "Enter XR" というボタンを設定し、 onButtonClicked() というメソッドを呼び出してボタンを有効にします。
まだセッションが開始されていない場合は、VRセッションをリクエストし、成功した場合は onSessionStarted() と呼ばれるメソッドでセッションを設定します。ボタンがクリックされたときにセッションが既に進行中であれば、 xrSession オブジェクトの end() メソッドを呼び出して WebXR セッションをシャットダウンします。
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() は、簡潔かつ明瞭にするために示しません。
onSessionStarted(xrSession);
});
} else {
// ボタンはトグルボタンです。
xrSession.end();
}
}
仕様書
| Specification |
|---|
| WebXR Device API> # dom-xrsystem-issessionsupported> |
ブラウザーの互換性
Loading…