From fcaf7db923cb6a6e680a0050df78adc3b1961ad1 Mon Sep 17 00:00:00 2001 From: Seven Date: Sun, 21 Dec 2025 02:53:02 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=B8=85=E9=99=A4=20?= =?UTF-8?q?Service=20Worker=20=E7=BC=93=E5=AD=98=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E7=BC=93=E5=AD=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/composables/useCacheSize.ts | 8 ++++++++ src/main.ts | 31 ++++++++++++++++++------------- src/store/user.ts | 1 + 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/composables/useCacheSize.ts b/src/composables/useCacheSize.ts index 00f0d96..153e127 100644 --- a/src/composables/useCacheSize.ts +++ b/src/composables/useCacheSize.ts @@ -75,6 +75,14 @@ export function useCacheSize() { // 清除 sessionStorage sessionStorage.clear(); + // 清除 Service Worker 缓存 + if ("serviceWorker" in navigator) { + const registrations = await navigator.serviceWorker.getRegistrations(); + for (const registration of registrations) { + await registration.unregister(); + } + } + // 清除 Cache API 缓存 if ("caches" in window) { const cacheNames = await caches.keys(); diff --git a/src/main.ts b/src/main.ts index 9f8580b..24549e3 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,24 +2,24 @@ import { IonicVue } from "@ionic/vue"; import { createPinia } from "pinia"; import { createApp } from "vue"; import App from "./App.vue"; +import { authClient } from "./auth"; import { i18n } from "./locales"; + import { router } from "./router"; /* Core CSS required for Ionic components to work properly */ import "@ionic/vue/css/core.css"; - /* Basic CSS for apps built with Ionic */ import "@ionic/vue/css/normalize.css"; import "@ionic/vue/css/structure.css"; -import "@ionic/vue/css/typography.css"; +import "@ionic/vue/css/typography.css"; /* Optional CSS utils that can be commented out */ import "@ionic/vue/css/padding.css"; import "@ionic/vue/css/float-elements.css"; import "@ionic/vue/css/text-alignment.css"; import "@ionic/vue/css/text-transformation.css"; import "@ionic/vue/css/flex-utils.css"; -import "@ionic/vue/css/display.css"; /** * Ionic Dark Mode @@ -28,10 +28,11 @@ import "@ionic/vue/css/display.css"; * https://ionicframework.com/docs/theming/dark-mode */ -// import "@ionic/vue/css/palettes/dark.always.css"; -import "@ionic/vue/css/palettes/dark.class.css"; +import "@ionic/vue/css/display.css"; // import "@ionic/vue/css/palettes/dark.system.css"; +// import "@ionic/vue/css/palettes/dark.always.css"; +import "@ionic/vue/css/palettes/dark.class.css"; /* Theme variables */ import "./theme/index.css"; import "./theme/variables.css"; @@ -39,14 +40,18 @@ import "./theme/ionic.css"; useTheme(); -const pinia = createPinia(); +authClient.getSession().then((session) => { + const pinia = createPinia(); + const userStore = useUserStore(pinia); + userStore.setToken(session.data?.session.token || ""); -const app = createApp(App) - .use(IonicVue) - .use(pinia) - .use(router) - .use(i18n); + const app = createApp(App) + .use(IonicVue) + .use(pinia) + .use(router) + .use(i18n); -router.isReady().then(() => { - app.mount("#app"); + router.isReady().then(() => { + app.mount("#app"); + }); }); diff --git a/src/store/user.ts b/src/store/user.ts index 5f600a7..f3cab33 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -1,5 +1,6 @@ import type { UserData, UserProfileData } from "@/api/types"; import { client, safeClient } from "@/api"; +import { authClient } from "@/auth"; interface State { user: UserData | null;