🛠️ Laboratorio: Salir del CNA hacia Navegador Completo

Prueba sistemática de técnicas (clásicas, específicas por SO y experimentales) para abrir el navegador del sistema y completar autenticación.

Consejos: muchos CNA bloquean window.open sin gesto del usuario. Haz clic en cada botón manualmente. Técnicas con *Service Worker* requieren HTTPS y ruta de tope de dominio.

1) Enlaces <a> con variaciones

Cuando el WebView/CNA delega targets o atributos especiales, puede lanzar el navegador completo.

2) Pop‑ups (window.open)

Variantes con nombre y features. Ăštiles si el CNA no soporta popups y redirige al sistema.

3) Redirecciones directas

La forma más dura: reemplazar documento o historial.

4) Formularios invisibles

Algunos CNA derivan formularios a navegador externo.

5) Android Intents (WebView → navegador)

Intent URIs con o sin paquete; incluye fallback y Play Store.

6) Protocolos del sistema

Fuerzan manejadores externos (teléfono, correo, mapas) que pueden sacar del CNA.

7) Meta refresh y HTML puros

Inserción dinámica de meta/iframe con políticas que a veces fuerzan el salto.

8) Data/Blob scripts

Crea documentos efĂ­meros que redirigen por script, abiertos en contexto aparte.

9) Service Worker Trigger (experimental)

Registra un SW (requiere HTTPS y scope en raíz). El SW puede fetch‑intercept y redirigir; algunos CNA entregan control al navegador.

Si estás probando desde un sub‑path, mueve este archivo a / del host para que el SW tenga mayor alcance.

10) Ventanas intermedias & control de opener

Abrir una ventana puente sin opener y hacer la navegaciĂłn desde ahĂ­.

11) iOS helpers

Safari suele obedecer window.open desde gesto; algunos CNA iOS abren Safari con mailto o al tocar dominios no captivos.

Para Universal Links / App Links, asegura archivo apple-app-site-association o assetlinks.json en tu dominio. Aquí probamos el salto al navegador; los enlaces universales ya harán deep‑link.

12) Cerrar/soltar CNA (mejor esfuerzo)

Muchos CNA no permiten window.close() si no se abriĂł por script. Probamos variantes.