Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
No puedo cerrar una ventana emergente B desde una página A dentro del navegador webView

Traté de encontrar una solución aquí, pero no pude.

El problema es el siguiente:

  • Tengo una página A que abre una ventana emergente B que tiene alguna autenticación.
  • Después de la autenticación, la página A (la página window.opener) cierra la página emergente B cuando recibe todo hecho desde el backend.

Funciona bien, excepto cuando se abre desde el "navegador" webView desde la aplicación de Facebook o chatea en un teléfono.

Hasta ahora puedo ver que la limitación de webView es que solo puede tener una pestaña activa. Entonces, cuando la página A no está activa, su código javascript no se ejecuta y la ventana emergente no se cerrará.

Puede probar esto con este violín desde el navegador webView.

 let w = null; window.addEventListener("DOMContentLoaded", (event) => { document.querySelector("button").addEventListener("click", () => { w = window.open("https://www.google.com", "customPopup", popupFeatures); window.setTimeout(() => { if (w) { w.close() } alert('parent js is working'); }, 3000); }); }); const popupFeatures = "menubar=no,location=no,resizable=no,scrollbars=yes,status=no,width=700,height=700";
 <button>.......CLICK here....</button>

Algunas limitaciones que no puedo eludir:

  • La página B tiene que ser una ventana emergente porque Safari bloquea las cookies de terceros, por lo que no hay marco flotante en la página A.
  • La página/código emergente no tiene una opción de redirección y no tengo control sobre ella.
  • La página emergente tampoco usa postMessage u otro método de comunicación con otras páginas, obtengo todo hecho solo desde nuestro backend que lo solicita desde el suyo.
  • No puedo configurar la ventana emergente B con mi código porque poco después de abrirla, se redirige a otra página de terceros.

¿Hay alguna manera de mantener el código javascript en la página A para seguir ejecutando o poder cerrar la ventana emergente?

El problema principal es que después de que se abre la ventana emergente y el usuario finaliza con la autenticación, el flujo se atasca allí porque no puedo cerrarlo desde la página A porque su subproceso de javascript no está activo.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!