Iframe 是一种用于将一个网站的内容嵌入到另一个网站或 HTML 页面的 Web 技术。 HTML 标签 <iframe> 可用于此目的,并且可以通过各种配置和属性进行创建。
在将 ArcGIS 界面或功能集成到其他业务系统时,常见模式是使用 iframe,将一个 Web 应用程序(如 ArcGIS Instant Apps、ArcGIS Experience Builder 或使用 Maps SDK for JavaScript 开发的另一个应用程序)嵌入到另一个业务系统应用程序中。
这可能涉及编写明确定义 <iframe> 的代码或 HTML,或者另一个系统可能具有类似于可处理 iframe 进程的嵌入微件或工具,这可能会对 iframe 施加额外限制,或控制可设置的 iframe 标签属性。
该模式支持的工作流示例包括:
将定位器地图嵌入更大的 Web 页面中,以查找门店位置或常见的地理要素
创建可编辑的 Web 地图和应用程序,并将其嵌入到另一个更大的数据收集或配置进程中,这些进程基于表单或使用其他技术构建
使用 URL 参数显示 ArcGIS Survey123 表单,作为收集数据或参与更广泛工作流的网站或应用程序的一部分。
此功能及其最佳做法同样适用于将 ArcGIS 应用程序嵌入到其他 ArcGIS 应用程序中的场景。
| 功能 | ArcGIS Online | ArcGIS Enterprise | ArcGIS Location Platform | ArcGIS Pro |
|---|---|---|---|---|
| 在其他系统中嵌入 ArcGIS 应用程序 | N/A | N/A |
完全支持 部分支持
在远程系统中,<iframe> 可用于嵌入 ArcGIS Online、ArcGIS Enterprise 中的应用程序或使用 ArcGIS Maps SDK for JavaScript 构建的定制应用程序。
许多 ArcGIS Web 应用程序支持通过 URL 参数定义的一组加载时可配置属性,例如 https://my.domain.com/portal/home/apps/viewer.html?center=-54,120&zoom=5(将应用程序置中于这些坐标并缩放为 5 级)。 使用这种集成模式时,通常会利用父应用程序或业务系统应用程序的属性来动态设置这些 URL 参数(从而控制 iframe 应用程序的加载方式)。 例如,如果用户正在非 ArcGIS 系统中查看记录,且该记录在父应用程序中的标识符为 BD1245,在定义 iframe 时,可能包含一个类似 ../my-app.html?featureID=BD1245 的 URL,这样在应用程序加载时,所需的数据就会直接显示并处于焦点位置。
一直以来,iframe 都是一项热门技术,同时也带来了各种安全挑战。 这会导致浏览器对 iframe 设置了各种限制,从而可能影响跨系统的功能或易用性。 关键挑战包括:
可能会阻止文件下载或上传。 浏览器安全设置可能会阻止从 iframe 下载文件,导致嵌入式应用程序中的下载链接或下载按钮虽未报告任何 error 或故障,但无法下载文件(例如从要素表导出的文件)。 此类问题通常会通过浏览器 JavaScript 控制台消息进行报告。
屏幕尺寸可能会对用户界面产生负面影响。 Iframe 通常以像素为单位定义为固定框架尺寸,因此应针对该预期视图尺寸设计待嵌入的应用程序。 如果父应用程序能够智能地根据用户的屏幕分辨率调整 iframe 的大小,那么屏幕较大的用户可能会获得良好的响应式体验;但如果是固定尺寸的 iframe,则会导致嵌入窗口过小,导致用户体验较差。 嵌入式应用的设计应确保所有主要 UI 元素和交互都能在提供的屏幕区域内完成。