Al hacer clic en el botón Atrás en el navegador, me gustaría evitar el comportamiento predeterminado de retroceder una página y, en su lugar, realizar una acción. Estoy usando el detector de eventos "popstate". La siguiente función (estoy usando Vue 2) funciona en todos los principales navegadores e incluso en Firefox para Android, pero cuando la pruebo en Chrome para Android, simplemente retrocede una página sin que se active popstate en absoluto.
mounted() { history.pushState(null, null, <current-url>); window.addEventListener("popstate", () => { alert(1) }); }Intenté envolver el evento popstate dentro del evento de carga y darle un timeOut de 0, pero aún no funcionó específicamente en Chrome para Android. La versión que estoy probando es la 93.
Investigué un poco más y parece que Chrome no te permitirá usar popstate si no hay interacción del usuario primero. Siempre que haga clic en algo o se desplace hacia abajo en el dispositivo móvil, popsate funcionará; de lo contrario, no funcionará. Traté de simular la interacción del usuario con click() , pero tampoco funcionó. Parece que Chrome quiere una interacción genuina del usuario. También me di cuenta de que esto es una especie de duplicado de: Chrome popstate no activa el botón Atrás si no hay interacción del usuario