查看本地文件时如何加载扩展

How do I load extension when viewing local file

我正在使用取自 viewer-javascsript-offline.sample

的示例

我有一个使用 nodejs 教程 (link) 创建的扩展,我使用教程代码注册了该扩展。但是,当我使用离线查看器代码示例(使用 viewer3D 而不是 viewingApplication)尝试相同的操作时,我无法查看扩展程序的按钮。

注意:我可以保证 handleselectionextension.js 工作正常,因为我已经在教程版本中使用它了。

代码:
index.cssindex.html

.handleSelectionToolbarButton {
  background-image: url(https://github.com/encharm/Font-Awesome-SVG-PNG/raw/master/white/png/24/object-group.png);
  background-size: 24px;
  background-repeat: no-repeat;
  background-position: center;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Very Basic 3D Viewer</title>
  <link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/style.min.css?v=4.2.*" type="text/css">
  <link href="index.css" rel="stylesheet" />

</head>

<body>
  <div id="MyViewerDiv"></div>

  <!-- The Viewer JS -->
  <script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/three.min.js?v=4.2.*"></script>
  <script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js?v=4.2.*"></script>
  <script src="handleselectionextension.js"></script>

  <!-- Developer JS -->
  <script>
    var myViewerDiv = document.getElementById('MyViewerDiv');
    var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv);
    var options = {
      'env': 'Local',
      'document': "0/1/Design.svf",
      'extensions': ["HandleSelectionExtension"]
    };
    Autodesk.Viewing.Initializer(options, function() {
      viewer.start(options.document, options);
    });
  </script>
</body>

</html>

扩展配置不适用于 Initializer,您必须像这样将其传递给查看器构造函数的第二个参数:

var config3d = {
    'extensions': ["HandleSelectionExtension"]
};

var myViewerDiv = document.getElementById('MyViewerDiv');
var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv, config3d);

var options = {
  'env': 'Local',
  'document': "0/1/Design.svf"
};

Autodesk.Viewing.Initializer(options, function() {
  viewer.start(options.document, options);
});