Integrar una aplicación de ArcGIS en un <iframe>

Los iframes son una tecnología web utilizada para incrustar contenido de un sitio web en otro sitio web o página HTML. La etiqueta HTML <iframe> se utiliza para este propósito y puede crearse con una amplia variedad de configuraciones y propiedades.

Al integrar interfaces o funcionalidades de ArcGIS en otros sistemas empresariales, un patrón común es incrustar una aplicación web, como una de ArcGIS Instant Apps, ArcGIS Experience Builder u otra aplicación construida con Maps SDK for JavaScript, en otra aplicación de sistema empresarial mediante el uso de un iframe.

Esto puede implicar escribir código o HTML que defina explícitamente un <iframe> que el otro sistema disponga de un patrón, como un widget o una herramienta de incrustación, que gestione el proceso del iframe, lo que puede imponer restricciones adicionales al iframe o controlar qué atributos de la etiqueta iframe pueden configurarse.

Entre los ejemplos de flujos de trabajo que pueden compatibilizarse con este patrón se incluyen los siguientes:

  • Integrar un mapa localizador en una página web más amplia para encontrar ubicaciones de tiendas o entidades geográficas comunes

  • Crear un mapa web y una aplicación editables, e incrustarlos en otro proceso más amplio de recopilación de datos o configuración, ya sea basado en formularios o desarrollado con otra tecnología

  • Mostrar un formulario de ArcGIS Survey123 mediante parámetros de URL, como parte de un sitio web o una aplicación que recopila datos o participa en un flujo de trabajo más amplio.

Esta capacidad y sus mejores prácticas también se aplican a escenarios en los que las aplicaciones de ArcGIS están integradas en otras aplicaciones de ArcGIS.

Patrones de integración en ArcGIS

Funcionalidad ArcGIS Online ArcGIS Enterprise ArcGIS Location Platform ArcGIS Pro
Integrar aplicaciones de ArcGIS en otro sistema N/A N/A

Compatibilidad completa Compatibilidad parcial


En un sistema remoto, se puede utilizar <iframe> para incrustar aplicaciones de ArcGIS Online, ArcGIS Enterprise o aplicaciones personalizadas construidas con ArcGIS Maps SDK for JavaScript.

Usar parámetros de dirección URL

Muchas aplicaciones web de ArcGIS admiten un conjunto de propiedades configurables al cargarse, definidas mediante parámetros de URL, como https://my.domain.com/portal/home/apps/viewer.html?center=-54,120&zoom=5 (centrar la aplicación en esas coordenadas y hacer zoom al nivel de escala 5). Al utilizar este patrón de integración, es habitual establecer dinámicamente estos parámetros de URL —que controlan cómo se cargará la aplicación iframe— a partir de propiedades de la aplicación principal o del sistema de negocio. Por ejemplo, si el usuario está viendo un registro en un sistema no ArcGIS con un identificador de BD1245 en la aplicación principal, cuando se define iframe puede incluir una URL como ../my-app.html?featureID=BD1245, de modo que la aplicación se cargue con los datos de interés ya visibles y enfocados en la aplicación.

Prácticas recomendadas para incrustaciones mediante <iframe>

Históricamente, los iframes han sido una tecnología popular que también ha supuesto una amplia variedad de desafíos de seguridad. Esto ha dado lugar a diversas limitaciones impuestas por los navegadores sobre los iframe, lo que puede restringir la funcionalidad o la facilidad de uso entre sistemas. Algunos de los principales retos incluyen:

  • El inicio de sesión único es complicado. Los estándares de los navegadores suelen bloquear la reutilización de cookies de sesión existentes en un <iframe>, a menos que el dominio del <iframe> coincida con el dominio del contenido principal. Esto significa que, a menudo, un usuario debe autenticarse en el sistema ArcGIS incrustado en el <iframe>, lo que requerirá una interacción de inicio de sesión. Si tanto el elemento principal del marco como el propio marco se autentican mediante el mismo proveedor de identidad, es posible que los usuarios esperen una experiencia de inicio de sesión único y se sientan insatisfechos si se les exige un segundo inicio de sesión. Algunos proveedores de identidad empresarial también pueden bloquear el uso de su cuadro de diálogo de inicio de sesión dentro de un iframe, y puede ser necesario recurrir a otros enfoques, como encabezados de Content-Security-Policy cuidadosamente configurados.
  • Para abordar mejor este problema, utilice el mismo dominio (por ejemplo, .domain.com) tanto para el sitio principal como para el sitio del iframe, emplee el mismo proveedor de inicio de sesión único y permita que la aplicación redirija automáticamente a los usuarios al inicio de sesión cuando sea necesario.
  • Las descargas o subidas de archivos pueden bloquearse. La seguridad del navegador puede bloquear la descarga de archivos desde iframe; en esos casos, un enlace o botón de descarga en una aplicación incrustada puede no mostrar ningún error error o fallo y, simplemente, no descargar el archivo, como una exportación desde una tabla de entidades. Esta categoría de problema suele notificarse mediante un mensaje en la consola JavaScript del navegador.

  • El tamaño de la pantalla puede afectar negativamente a las interfaces de usuario. Los iframe suelen definirse con un tamaño de marco fijo en píxeles, y las aplicaciones que vayan a incrustarse deberían diseñarse para ese tamaño de visualización previsto. Si la aplicación principal puede escalar de forma inteligente el iframe según la resolución de pantalla del usuario, quienes dispongan de pantallas más grandes podrán tener una experiencia adaptable; sin embargo, un iframe de tamaño fijo dará lugar a una ventana incrustada pequeña que puede perjudicar la experiencia de usuario. Las aplicaciones incrustadas deberían diseñarse de modo que todos los elementos principales de la interfaz y las interacciones puedan realizarse dentro del área de pantalla disponible.

  • La comunicación entre el iframe y la ventana principal suele ser limitada. Aunque algunos patrones de <iframe> permiten la comunicación entre la ventana principal y el <iframe> mediante protocolos o mecanismos como postMessage, la mayoría de las aplicaciones de ArcGIS no ofrecen esta capacidad, por lo que las interacciones en la aplicación incrustada no afectan a la ventana principal, ni viceversa.
Top