Videoconsulta dentro de una app híbrida: manda frame-ancestorsVideo visits inside a hybrid app: frame-ancestors decides
Lo que funciona en tu web puede no cargar en la app, aunque el código sea idéntico.
What works on your website may not load in the app, even with identical code.

Teníamos una sala de videoconsulta funcionando en la web: una página propia que embebe al proveedor médico en un iframe. La meta era llevarla tal cual a las apps de iOS y Android, que comparten código con la web.
El origen de una app no es tu dominio
Dentro de una app híbrida la página no vive en https://tudominio.com. En iOS el origen es capacitor://localhost y en Android https://localhost. Si el proveedor publica Content-Security-Policy: frame-ancestors con solo tu dominio web, su sala se niega a cargar dentro de la app, sin importar lo que haga tu código.
Cómo lo resolvimos
- Medimos las cabeceras reales del proveedor en cada ambiente con
curl, en lugar de deducirlas. - Pedimos al proveedor que agregara los orígenes de la app a su lista de
frame-ancestors. - Mientras tanto, la app abre la sala en el navegador del sistema como plan B, en vez de dejar al paciente en una pantalla en blanco.
No resuelvas un bloqueo de iframe permitiendo que la app navegue libremente hacia dominios externos. Abres una puerta mucho más grande que el problema.
We had a video visit room working on the web: our own page embedding the medical provider in an iframe. The goal was to bring it as-is to the iOS and Android apps, which share code with the web.
An app’s origin is not your domain
Inside a hybrid app the page does not live at https://yourdomain.com. On iOS the origin is capacitor://localhost and on Android https://localhost. If the provider sends Content-Security-Policy: frame-ancestors listing only your web domain, its room refuses to load inside the app, no matter what your code does.
How we solved it
- We measured the provider’s real headers in each environment with
curlinstead of guessing. - We asked the provider to add the app origins to its
frame-ancestorslist. - In the meantime, the app opens the room in the system browser as plan B, instead of leaving the patient on a blank screen.
Do not fix an iframe block by letting the app navigate freely to external domains. You open a much bigger door than the problem.