添加自定义微件

ArcGIS Enterprise 11.0 起,可将自定义 Experience Builder 微件添加到门户。 这意味着在创建应用程序时,您可以在构建器环境中选择自定义微件。自定义微件必须在 web 服务器上托管并注册到门户后才能使用。 出于安全方面的原因,只有门户管理员可以注册自定义微件。 公开共享的自定义微件可以在公共应用程序中用于匿名用户访问。

在 Web 服务器上托管自定义微件

在 web 服务器上托管自定义微件与托管任何其他 web 应用程序一样。您必须安装并配置 web 服务器。 常见 web 服务器包括 IISApache HTTP Server

要在 web 服务器上托管自定义微件,请完成以下步骤:

  1. 启用对托管微件的虚拟目录的匿名访问。

    托管位置必须能够匿名访问。

  2. 启用 HTTPS。

    启用 Web 服务器中的 HTTPS 访问可避免创建混合内容。 Experience Builder 不允许通过在 HTTPS 连接下加载 HTTP 而导致混合的活动内容。 此外,服务器需要具有证书颁发机构颁发的有效 SSL 证书才能建立 HTTPS 连接。

  3. 启用跨域资源共享 (CORS)。

    Experience Builder 在门户域下运行,该域可能与托管自定义微件的 Web 服务器的域不同。 需要启用 Web 服务器中的 CORS,才能从门户域进行访问。

  4. 将 JSON 处理程序添加到 Web 服务器。

    每个微件都包含一个说明微件属性的 JSON 清单文件。 一些 Web 服务器默认无法识别 JSON 文件扩展名。 在这种情况下,需要将其作为新的 MIME 类型在应用程序级别或更高级别添加到服务器。 MIME 类型应将 .json 作为文件扩展名并将 application/json 作为 MIME 类型。

  5. 编译自定义微件。

    在托管自定义微件之前,必须对其进行编译。 您必须将自定义微件复制到 arcgis-experience-builder/client/your-extension/widgets 目录。 然后,您需要在客户端目录下运行 npm run build:prod。 完成此操作后,已编译的微件将显示在 client/dist-prod/widgets 目录中。

  6. 将自定义微件部署到 Web 服务器。

    您可以将 client/dist-prod/widget/ 文件夹复制到 Web 服务器。 部署完成后,需要获取自定义微件的清单文件的 URL 路径。 例如,清单文件的 URL 路径为 <server.domain.com>/<my widget>/manifest.json

注册自定义微件

必须在门户中注册每个自定义微件。 注册自定义微件需要门户管理员权限。

  1. 在浏览器窗口中,登录到门户。
  2. 单击内容页面的我的内容选项卡。
  3. 单击添加项目,然后选择应用程序
  4. 选择 Experience Builder 微件,并提供清单文件的 URL。

    例如,清单文件的 URL 路径为 <server.domain.com>/<my widget>/manifest.json

  5. 单击标题框。

    将从清单文件中自动填充项目标题。 或者,可以手动编辑标题。

  6. 标签框中添加标签。
  7. 单击添加项目

    现在,自定义微件在内容页面的我的内容选项卡上用作 Experience Builder 微件类型。

共享自定义微件

门户管理员可以将自定义微件共享给组织中需要访问的群组、共享给整个组织或公开共享(如有必要)。

警告:

应用程序将仅加载已注册到有权访问该应用程序的用户所在组织的自定义微件。

我的内容中,找到自定义微件并将其共享。 打开 Experience Builder 时,自定义微件将显示在插入微件选项卡的自定义组中。

警告:

如果在加载自定义微件时收到 404 错误,请确认微件无需使用微件包名称的模块。 相反,使用相对路径来加载模块。

更新自定义微件

无法更新门户中的自定义微件。 但是,可以在 web 服务器中更新托管自定义微件的 HTML 结构和 JavaScript 代码。