From db8c5ec7b5f5cd0e24251956e5e2253e968e484a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E4=B9=8B?= Date: Mon, 31 Mar 2025 22:52:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86service=20worker=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/service/service_worker/runtime.ts | 14 ++++++-------- src/pkg/utils/utils.ts | 10 ++++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/app/service/service_worker/runtime.ts b/src/app/service/service_worker/runtime.ts index 3e9e2f5..ccbd9bd 100644 --- a/src/app/service/service_worker/runtime.ts +++ b/src/app/service/service_worker/runtime.ts @@ -1,12 +1,6 @@ import { MessageQueue } from "@Packages/message/message_queue"; import { Group, MessageSend } from "@Packages/message/server"; -import { - Script, - SCRIPT_STATUS_ENABLE, - SCRIPT_TYPE_NORMAL, - ScriptDAO, - ScriptRunResouce, -} from "@App/app/repo/scripts"; +import { Script, SCRIPT_STATUS_ENABLE, SCRIPT_TYPE_NORMAL, ScriptDAO, ScriptRunResouce } from "@App/app/repo/scripts"; import { ValueService } from "./value"; import GMApi from "./gm_api"; import { subscribeScriptDelete, subscribeScriptEnable, subscribeScriptInstall } from "../queue"; @@ -15,11 +9,12 @@ import { runScript, stopScript } from "../offscreen/client"; import { dealMatches, getRunAt } from "./utils"; import { randomString } from "@App/pkg/utils/utils"; import { compileInjectScript, compileScriptCode } from "@App/runtime/content/utils"; +import Cache from "@App/app/cache"; export class RuntimeService { scriptDAO: ScriptDAO = new ScriptDAO(); - scriptFlag: string = randomString(8); + scriptFlag: string = ""; // 运行中的页面脚本 runningPageScript = new Map(); @@ -33,6 +28,9 @@ export class RuntimeService { ) {} async init() { + this.scriptFlag = await Cache.getInstance().getOrSet("scriptInjectFlag", () => { + return Promise.resolve(randomString(16)); + }); // 读取inject.js注入页面 this.registerInjectScript(); // 监听脚本开启 diff --git a/src/pkg/utils/utils.ts b/src/pkg/utils/utils.ts index eae72c7..ef02639 100644 --- a/src/pkg/utils/utils.ts +++ b/src/pkg/utils/utils.ts @@ -217,3 +217,13 @@ export function sleep(time: number) { setTimeout(resolve, time); }); } + +// 使service_worker长时间存活 +export async function waitUntil(promise: Promise) { + const keepAlive = setInterval(chrome.runtime.getPlatformInfo, 25 * 1000); + try { + await promise; + } finally { + clearInterval(keepAlive); + } +}