简介
RealityConnect Embed 让您可以将实时、可交互的 RealityTwin 查看器直接放入您自己的 Web 应用中。孪生在 iframe 中渲染,一个轻量级的 JavaScript SDK(@prevu3d/realityconnect-embed)让您的页面对其进行编程式控制——因此您的用户无需离开他们已在使用的工具,即可获得沉浸式的 3D 上下文。
嵌入是如何组织的
Section titled “嵌入是如何组织的”在开始构建之前,有几项设计选择值得了解:
- 由您的页面控制的裸查看器。 嵌入的孪生是一个没有内置界面的 3D 查看器——没有页眉、侧边栏、菜单或工具栏。您的应用拥有周围的全部外壳,并通过 SDK 驱动孪生。
- 通过 RealityConnect API 授权。 每个嵌入会话都使用您组织的 OAuth 凭据进行授权——不存在匿名嵌入。您的后端为给定孪生请求一个已签名的、短期有效的嵌入 URL。
- SDK 加载并对查看器进行插桩。 您的页面将该 URL 交给 SDK,SDK 注入 iframe 并与孪生建立安全的双向通道。
- 您的页面驱动孪生。 一旦查看器报告就绪,SDK 命令即可用于控制孪生(导航、兴趣点、传送到某个对象、捕获可分享的视图),并订阅嵌入场景的实时状态。
- 它是 RealityConnect 的可视化层。 RealityConnect API 连接您的系统并授权访问,而 RealityConnect Embed 渲染孪生并将其暴露给您的前端代码。
各部分如何协作
Section titled “各部分如何协作”三个组件协作以使嵌入会话正常工作:
- 您的后端使用 Client Credentials 流程向 RealityConnect API 进行身份验证,然后请求 API 为特定孪生创建一个短期有效的嵌入会话。这是您的 OAuth 客户端密钥唯一存在的位置。
- 您的前端从后端接收会话值并将其交给 SDK。SDK 注入一个指向已签名嵌入 URL 的 iframe,并与之打开一个安全的
postMessage通道。 - 嵌入的孪生渲染 3D 场景,执行从您的页面发送的命令,并将实时状态(选中的对象、当前相机模式、编码视图等)流式传回。
嵌入暴露了什么
Section titled “嵌入暴露了什么”SDK 为您的页面提供一个带类型的 API,用于驱动场景(相机导航、兴趣点、对象传送、视图分享、截图),并订阅从孪生返回的实时状态。完整的接口——命名空间、动作、observable 和错误码——记录在 SDK README 中。
下表总结了嵌入目前涵盖和不涵盖的内容。新功能会定期添加,因此请将其视为一个快照。
| 功能 | 在嵌入中? | 备注 |
|---|---|---|
| 3D 场景渲染 | 是 | 完整的 RealityTwin 查看体验。 |
| 相机导航模式 | 是 | 透视、正交、全景球、第三人称。 |
| 兴趣点(查看、创建、编辑) | 是 | 兴趣点的创建、编辑与放置。 |
| 对象选择与“传送到” | 是 | 将相机移动到特定的业务对象。 |
| 可分享的视图链接 | 是 | 将当前相机编码为紧凑字符串,随后在任意页面加载时恢复。 |
| 截图 | 是 | 将当前视图捕获为 PNG 字节。 |
| 实时状态订阅 | 是 | 观察选择、悬停、相机模式、兴趣点工具状态等。 |
| 内置孪生 UI(菜单、面板、模态框) | 否 | 由您的宿主页面提供所有界面元素。 |
| 编辑功能(草稿、测量、区域、RealityPlan Projects、CAD 检查) | 否 | 这些仍保留在完整的 RealityTwin 应用中。 |
常见使用场景
Section titled “常见使用场景”- 希望在记录旁边提供 3D 上下文的资产管理和检查平台
- 虚拟漫游和在线学习体验
- 任何可从嵌入式、可导航的数字孪生中受益的 Web 产品
- 快速入门:进行身份验证、安装 SDK 并加载您的第一个嵌入孪生。
- RealityConnect API:嵌入背后的身份验证与数据层。
- 在线示例:一个可端到端查看的可运行 Vue.js 集成。
@prevu3d/realityconnect-embed:源代码仓库