如何将 Autodesk Forge Viewer 嵌入移动应用程序?

Posted

技术标签:

【中文标题】如何将 Autodesk Forge Viewer 嵌入移动应用程序?【英文标题】:How to embed Autodesk Forge Viewer with mobile app? 【发布时间】:2020-02-20 22:05:50 【问题描述】:

我正在使用 ionic 和 Angular 开发一个可以在 forge 查看器中显示 pdf、图像或 dwg 文件的移动应用程序。它在网站监视器上运行良好,但是当我在 ios 手机和 android 手机中部署应用程序时,我发现如果我打开 dwg 文件和一些图像文件,应用程序有时会崩溃。顺便说一句,ios 不支持某些扩展,例如图钉扩展。好像三个js在ios中效果不好。

我也在forge viewer官网查看了关于“使用Forge Viewer & React Native创建iPhone应用”的文档。在我按照步骤使用本机反应构建应用程序并将其部署到我的手机上之后,pdf 和图像文件效果很好,但不适用于 dwg 文件。

我有使用 ionic 而非 React Native 构建应用程序的经验。对比这两个框架,我应该选择哪一个?如果我继续使用离子框架,是否有任何方法可以用来提高我的应用程序中伪造查看器的性能?还是改用 React Native 会更好?

对于技术问题,如何避免应用崩溃并提高性能?我在应用商店查看了A360应用,发现该应用正在使用离线数据,打开文件就会下载所有数据。我应该这样做吗? App Viewer

【问题讨论】:

小于1mb的dwg文件可以很快打开,但是如果文件大于1mb,加载需要一些时间,并且很难缩放查看器。 【参考方案1】:

从技术上讲,RN 和 Ionic 都将 Viewer 作为外部依赖项嵌入到 WebView 中,因此在嵌入方法中没有实质性差异/优缺点。

因此,我建议您使用您更熟悉/更熟悉的框架 - 尽管 RN 似乎有幸拥有几个示例,但在涉及到现实世界的解决方案时,这些示例只不过是表面上的问题这样您就可以跟上他们的方法并从那里开始。

性能方面是的 - 将衍生品 (SVF) 下载到客户端肯定会缩短加载时间 - 您可以看到 here 和 here 下载、本地存储/打包和 override request handling of WebView 加载它们(如Viewer 只支持 http(s) 不支持文件或其他协议),或者在here 和 here 之后使用 Service Worker 缓存资源。

您可以查看其他与性能相关的问题 - 主要是关于设置内存选项、正确的 FPS 目标、合并几何、选择性加载和调整导航选项 - 对于特定问题,您可以发布另一个问题或发送电子邮件至 forge.help在 autodesk.com 上寻求帮助。

小于1mb的dwg文件可以很快打开,但是如果文件大于1mb,则加载需要一些时间,并且很难缩放查看器。

我建议在本地下载或缓存衍生品 (SVF) 以提高加载性能。我无法重现缩放的任何困难 - 您是否在 head 元标记中设置了视口?

【讨论】:

不,我没有在 head 标签内设置查看器。可能资源还在加载中,所以我无法对其进行操作。我可以先尝试缓存或下载它们。谢谢,帮了大忙。

以上是关于如何将 Autodesk Forge Viewer 嵌入移动应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Autodesk 模型衍生 API 元数据中的 objectids 与 Forge Viewer 模型 dbids 匹配?

如何在 Autodesk Forge Viewer 中嵌入 pdf?

如何在 Forge Viewer 中激活“Autodesk.MemoryLimited”扩展?

如何克服 Autodesk Forge Viewer 中的窗口选择限制?

来自外部数据库的 Autodesk Forge Viewer 放置点

如何在对象上调整大小 - Autodesk Forge Viewer