Я использую своего работника службы приложений React, чтобы перехватить определенные выборки, чтобы объединить их токен. Это хорошо работает на начальной загрузке страницы, но через определенное время, когда я ориентируюсь на SW, перестает перехватывать эти черты. /> Кроме того, мои полученные изображения находятся в другом домене, чем в моем приложении, но содержание, которое содержит его в домене приложения.self.addEventListener("fetch", (event) => {
let request = event.request;
const url = new URL(request.url);
if (
token &&
request.method === "GET" &&
autoQSAuthorizationPaths.some((path) => request.url.startsWith(path))
) {
url.searchParams.set("authorization", token);
request = new Request(url.toString(), request);
}
event.respondWith(fetch(request));
});
< /code>
Вот моя регистрация SW в моем приложении: < /p>
const registration = await navigator.serviceWorker.register("/sw.js", {
type: "module",
scope: "/",
});
await registration.update();
await navigator.serviceWorker.ready;
< /code>
Вот моя SW Установка и активировать слушатели событий: < /p>
self.addEventListener("install", (event) => {
const func = async () => {
if (!isDev) {
await precache();
}
self.skipWaiting();
};
event.waitUntil(func());
});
self.addEventListener("activate", (event) => {
const func = async () => {
if (!isDev) {
await clearOldCaches();
}
await self.clients.claim();
};
event.waitUntil(func());
});
< /code>
Я попытался использовать этот крючок, который я создал, чтобы сохранить SW живым, пока я на странице приложения, я возрожу, если вернусь на страницу после его лефма: < /p>
self.addEventListener("install", (event) => {
const func = async () => {
if (!isDev) {
await precache();
}
self.skipWaiting();
};
event.waitUntil(func());
});
self.addEventListener("activate", (event) => {
const func = async () => {
if (!isDev) {
await clearOldCaches();
}
await self.clients.claim();
};
event.waitUntil(func());
});
< /code>
Но, когда мое приложение неактивно, и я возвращаюсь к нему. Если SW был убит Firefox в течение этого времени, Ping не возрождает его.
Подробнее здесь: https://stackoverflow.com/questions/797 ... in-firefox