Пользователи могут отправить форму в автономном режиме, которая синхронизируется с моей базой данных с фоновой синхронизацией. Это работает, как ожидалось. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь находится в автономном режиме и отправляет форму, которую он перенаправляет на страницу ошибки сайта, не найденную в Chrome. Пользователь должен быть перенаправлен обратно к списку всех его записей. Я подтвердил, что страница, на которую выполняется перенаправление, кэширована.
Файл рабочего сервера:
importScripts(
"https://storage.googleapis.com/workbox-cdn/releases/6.1.2/workbox-sw.js"
);
const CACHE = "example-offline";
const QUEUE_NAME = "bgSyncQueue";
self.addEventListener("message", (event) => {
if (event.data && event.data.type === "SKIP_WAITING") {
self.skipWaiting();
}
});
workbox.routing.registerRoute(
new RegExp("/*"),
new workbox.strategies.NetworkFirst({
cacheName: CACHE,
})
);
const bgSyncPlugin = new workbox.backgroundSync.BackgroundSyncPlugin(
QUEUE_NAME,
{
maxRetentionTime: 24 * 60, // Retry for max of 24 Hours (specified in minutes)
}
);
workbox.routing.registerRoute(
new RegExp("^https://example.com/[a-zA-Z]+/journal"),
new workbox.strategies.NetworkOnly({
plugins: [bgSyncPlugin],
}),
"POST"
);