SuperAPI AI 工具集

quest-webxr

前端与建站

查看项目

更新于 10-16 02:41

技能介绍

用途

该技能用于判断某个 XR 体验是否应该走 WebXR(浏览器)路线,而非原生二进制,并负责 WebXR 与 PWA 相关的技术任务。适用于在 Meta Quest Browser 中运行 WebXR、使用 IWSDK 或 three.js 或 A-Frame、以及将页面打包为 PWA 的场景。若需要整体产品路线图或阶段审计,应使用 quest-lifecycle;单一技术任务则归本技能负责。如果相关阶段信息缺失,需要先识别当前阶段、证据和下一项前置条件。

路线取舍

Web 路线以牺牲原生性能为代价,换取“一次 git push 即可部署”的交付方式。适合演示、目录、工具,以及任何必须在头显之外也能运行的内容;当帧预算已经紧张时则不适合。

主要能力

  • 提供框架选择指引:IWSDK(npm create @iwsdk@latest,Meta 推荐路径,覆盖屏幕 3D 与沉浸式 WebXR,含测试方案 IWER 与构建部署指南)、three.js(已有 three.js 代码库、需完全控制渲染器)、A-Frame(声明式场景、最快搭建原型)。
  • 提供进入沉浸模式的实现方式:页面加载后即请求会话,代码示例包括 navigator.xr.isSessionSupported('immersive-vr')、requestSession('immersive-vr') 与 renderer.xr.setSession(session);A-Frame 通过 scene.enterVR() 在 renderstart 时实现;Meta 示例以 window.getDigitalGoodsService !== undefined 作为条件判断(在打包 PWA 中存在,纯 Browser 中不存在),使页面在笔记本上打开 URL 时仍可正常工作。
  • PWA 打包:使用 @meta-quest/bubblewrap-cli(验证版本 1.24.1,Node 18+),安装命令 npm install --global @meta-quest/bubblewrap-cli。前置条件包括:站点通过 HTTPS 提供并具备有效的 Web App Manifest;在 Developer Dashboard 创建应用(如 PWA 使用应用内购买则需要 Meta Horizon Application ID);签名密钥或初始化时创建密钥的信息;处于 Developer Mode 的头显用于旁加载测试。首次运行 Bubblewrap 会提供下载匹配 JDK 与 Android 命令行工具的选项,除非环境自行管理。Quest 初始化时会询问是否加入 Horizon Billing,若涉及 IAP 需准备好 Application ID,因为事后添加需要重新生成项目。
  • 变现与平台功能:WebXR PWA 的应用内购买通过 Horizon Billing 加 Digital Goods API 实现;成就、排行榜和附加内容在 web 文档索引中有服务器到服务器 API。IAP 应在打包前设置。
  • 分发:打包后的 PWA 是 Android 包,与原生构建走同一条路径(发布渠道、审核、VRC);2D(非沉浸式)PWA 按 VRC 的一个子集评判,并有一份会触发自动拒绝的权限列表。
  • 性能:浏览器有自己的计数器(web 文档中的 draw-call 指标),quest-perf 中的原生分析器无法看到页面内部。帧预算与原生相同(72 Hz 下为 13.9 ms),但开销不同。必须在头显中测量,绝不能在桌面浏览器窗口中测量。XRSession 上的 requestAnimationFrame 是帧时钟;页面若同时保持 DOM 动画运行,会付出双倍代价。

使用方式

建议顺序:先构建站点并在头显的 Browser 中测试;通过 Android 平台工具从机器对设备进行远程调试(Chrome DevTools);页面正确后再打包。打包步骤详见 references/pwa-packaging.md,其中包括决定沉浸式 PWA 能否启动的 Digital Asset Links 步骤。会话与能力协商、普通屏幕回退、资源、托管及浏览器/PWA 交付检查详见 references/runtime-delivery.md。

参考文档

索引:https://developers.meta.com/horizon/llmstxt/documentation/web/llms.txt/ ;页面:https://developers.meta.com/horizon/llmstxt/documentation/web/<slug>.md 。有用 slug 包括 pwa-webxr、pwa-packaging、pwa-overview-gs、browser-specs、browser-remote-debugging、3d-web、ps-iap、ts-webxr-perf-drawcall。IWSDK 自身的指南位于 documentation/iwsdk/guides/。

注意事项

  • PWA 内的 2D 落地页会被视为损坏的应用,应在加载时请求会话。
  • bubblewrap 是 Meta 的分支(@meta-quest/bubblewrap-cli),不是 Google 的包;Quest 特有的提示只存在于该分支中。
  • Billing 是打包时的决策,而非运行时决策。
  • 在桌面浏览器中测试能验证逻辑,但在性能上会给出错误结论。

关于收费、价格、平台支持范围、实际效果等其他信息,资料暂未提供。