如何在已初始化 Autodesk Viewer 的应用程序中使用 Autodesk Tandem Viewer?

问题描述 投票:0回答:1

我有一个可以成功初始化并使用 Autodesk Viewer 的应用程序。现在,我想添加 Autodesk Tandem Viewer。

这是 Autodesk Viewer 的初始化:

Autodesk.Viewing.Initializer({
  env: 'AutodeskProduction2',
  api: this.bEmea ? 'streamingV2_EU' : 'streamingV2',
  getAccessToken: accessToken
}, fnCallback);

我尝试像这样初始化 Tandem Viewer:

const options = {
  env: 'DtProduction',
  api: 'dt',
  productId: 'Digital Twins', 
  corsWorker: true,
  accessToken: accessToken
};

Autodesk.Viewing.Initializer(options, fnCallback);

但是,我在控制台中收到以下错误:

无法读取未定义的属性(读取“ROOT”)

错误源自 webpack://LMV/src/envinit.js 中的以下代码: 而选项是“DtViewer”

export function initializeServiceEndPoints(options) {

    // Get endpoint.
    var endp = options.endpoint;
    if (!endp) {
        var config = EnvironmentConfigurations[getEnv()];
        endp = config['ROOT'];
    }
}

这是错误的完整调用堆栈:

at _a (envinit.js:432:33)
at Object.Ma [as Initializer] (envinit.js:762:23)
at eval (Component.js?eval:159:26)
at new Promise (<anonymous>)
at c._initViewer [as initViewer] (Component.js?eval:150:14)
at eval (Component.js?eval:106:21)

是否可以在已初始化 Autodesk Viewer 的应用程序中使用 Tandem Viewer?如果是,应该如何正确配置选项?

我已经审查了这个答案,并确保在我的代码中,查看器的 JavaScript 文件仅加载一次。

autodesk-viewer autodesk-tandem
1个回答
0
投票

目前没有简单的解决方案,因为查看器(APS 查看器和 Tandem 查看器)正在污染全局命名空间。可以有一些选项:

  • USE_LMV_APP_NAMESPACES
    设置为 true 并使用
    LMV_APP_NAMESPACE
    定义自己的命名空间,例如:
<script>
  window.USE_LMV_APP_NAMESPACES = true;
  window.LMV_APP_NAMESPACE = 'myApp';
</script>

这应该在加载第一个查看器脚本之前设置。请注意,此选项尚未经过彻底测试,可能有一些限制。

  • 您可以为每个观看者使用单独的窗口吗?
© www.soinside.com 2019 - 2024. All rights reserved.