【问题标题】:How to make an app ready for 'ovrweb' protocol (to be viewed in Gear VR)?如何让应用程序为“ovrweb”协议做好准备(在 Gear VR 中查看)?
【发布时间】:2017-07-18 11:08:56
【问题描述】:

我有一个使用 ThreeJS 的网络应用程序。我目前正在尝试将 WebVR 与 Gear VR 一起使用。

我知道我需要使用 ovrweb 协议链接到该网络应用程序才能在 Gear VR 中打开它。我的问题是它没有。

每当我使用window.location.href = "ovrweb:http://my-app-url" 时,都会要求我将设备连接到 Gear VR。但是一旦我这样做,屏幕仍然是黑色的。我注意到每当我使用一些非 VR 网页作为 URL(如ovrweb:https://www.google.com)时,都会发生同样的事情。 然而,ovrweb 协议在某些 URL 上可以正常工作 - 例如ovrweb:https://playcanv.as/p/VNTAx5Eu/

我不确定我错过了什么。我的应用程序有一个 VR 按钮,单击该按钮会触发 display.requestPresent API 调用,屏幕会分成两部分(适用于 Chrome Canary)。这是我的应用程序需要满足才能通过 ovrweb 协议识别的任何要求列表吗?如果有,那是什么?

我浏览了 Oculus 文档,但没有找到任何可以帮助我的东西。如何让我的应用通过 ovrweb 协议运行?

更新:我发现 ThreeJS 示例链接(例如 https://threejs.org/examples/webvr_rollercoaster.html)也无法通过 ovrweb 协议运行。

【问题讨论】:

    标签: three.js webvr gear-vr


    【解决方案1】:

    好的,我自己找到了解决方案。

    每当我们尝试使用 ovrweb 协议时,设备都会尝试打开其 Carmel Developer Preview 浏览器中提供的 URL(不同于在 Oculus Home 体验中可以使用的“互联网浏览器”)。 现在 Carmel 开发者预览版仅支持“3D”网站。 Carmel Developer Preview 目前不支持导航到 2D 网站。 (https://developer.oculus.com/documentation/vrweb/latest/concepts/carmel-launching-content/)。这就是为什么我自己的网络应用程序以及 google.com 等链接显示为黑色的原因。

    所以我只需在开始时触发display.requestPresent - 从而将其与 2D 网站区分开来。

    现在display.requestPresent 在没有某种用户交互(例如单击按钮)的情况下无法工作。出于安全考虑,其他 JS API(例如全屏)也是如此。

    但是,通过 ovrweb 协议导航到链接并因此在 Carmel Developer Preview 中查看它似乎也满足了用户交互条件。因此,现在我的 VR 场景在 Gear VR 中完全可见。

    此解决方案也应该适用于 ThreeJS webvr 示例(包括 OP 中链接的过山车示例)。

    只需在页面加载时触发此 sn-p。

    display.requestPresent( [ { source: canvas } ] )
    .then(function() {
        // Presenting to WebVR display
    }, function(e) {
        // On error
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      相关资源
      最近更新 更多