diff --git a/assets/js/views/App.vue b/assets/js/views/App.vue index 3b2cd5029..8ebc5a2b3 100644 --- a/assets/js/views/App.vue +++ b/assets/js/views/App.vue @@ -111,11 +111,13 @@ export default defineComponent({ mounted() { this.connect(); document.addEventListener("visibilitychange", this.pageVisibilityChanged, false); + window.addEventListener("pageshow", this.pageShowHandler); }, unmounted() { this.disconnect(); this.clearReconnectTimeout(); document.removeEventListener("visibilitychange", this.pageVisibilityChanged, false); + window.removeEventListener("pageshow", this.pageShowHandler); }, methods: { clearReconnectTimeout() { @@ -123,11 +125,18 @@ export default defineComponent({ window.clearTimeout(this.reconnectTimeout); } }, - pageVisibilityChanged() { - if (document.hidden) { + pageShowHandler(event: PageTransitionEvent) { + if (event.persisted) { this.clearReconnectTimeout(); this.disconnect(); - } else { + this.connect(); + } + }, + pageVisibilityChanged() { + // disconnect in any case to ensure fresh connection + this.clearReconnectTimeout(); + this.disconnect(); + if (!document.hidden) { this.connect(); } },