当我尝试以下示例时:在使用Chrome浏览器和Utopia360耳机的Android 7.0 Samsung Galaxy 7手机上,https://threejs.org/examples/webvr_cubes.html一切正常,我可以进入VR模式。当我使用完全相同的代码尝试完全相同的事情时,仅在本地服务器上,我得到"Your browser does not support WebVR. See webvr.info for assistance."
代码完全相同,并且three.js和WebVR.js文件完全相同,除了Three.js和WebVR.js文件位于目录结构中(即<script src="js/threejs/three.js" type="text/javascript"></script>
而不是<script src="../build/three.js"></script>
)
最佳答案
原因是threejs页面具有嵌入的原始令牌,以允许webvr在不设置chrome标志enable-webvr的情况下工作,但是仅当该页面由“ threejs.org”提供时才有效。
您可以在演示页面的顶部看到此内容:
<!-- Origin Trial Token, feature = WebXR Device API (For Chrome M69+), origin = https://threejs.org, expires = 2019-01-07 -->
<meta http-equiv="origin-trial" data-feature="WebXR Device API (For Chrome M69+)" data-expires="2019-01-07" content="ArPzyYNrUDiXsGOh647Ya7MtVUA1nM+WFMnPWu7eoF2nQHOP6mTATIbiv0w+k2kFaPofZG/04ZEQdsACq4IA0wQAAABTeyJvcmlnaW4iOiJodHRwczovL3RocmVlanMub3JnOjQ0MyIsImZlYXR1cmUiOiJXZWJYUkRldmljZU02OSIsImV4cGlyeSI6MTU0Njg4MzAxOH0=">
因此,您有两种选择:
在手机浏览器中启用webvr标志(chrome:// flags#enable-webvr),
在以下位置请求与您的网站域相匹配的来源令牌: https://webvr.rocks/chrome_for_android。
即使通过http提供页面,设置标志也对我有用。