我有一个可以成功初始化并使用 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 文件仅加载一次。
目前没有简单的解决方案,因为查看器(APS 查看器和 Tandem 查看器)正在污染全局命名空间。可以有一些选项:
USE_LMV_APP_NAMESPACES
设置为 true 并使用 LMV_APP_NAMESPACE
定义自己的命名空间,例如:<script>
window.USE_LMV_APP_NAMESPACES = true;
window.LMV_APP_NAMESPACE = 'myApp';
</script>
这应该在加载第一个查看器脚本之前设置。请注意,此选项尚未经过彻底测试,可能有一些限制。