Не удается заставить workbox BackgroundSyncPlugin работать с next-pwa, запросы не отображаются на вкладке сеть в автономном режиме

#workbox #workbox-webpack-plugin #next-pwa

#workbox #workbox-webpack-plugin #next-pwa

Вопрос:

Я планирую использовать next-pwa в сочетании с плагином фоновой синхронизации workbox, чтобы повторить автономные запросы POST / PUT / DELETE, когда клиент подключен к Сети.

Я настроил запись runtimeCaching:

    {
        urlPattern: //api/.*$/i,
        handler: 'NetworkFirst',
        method: 'GET',
        options: {
            cacheName: 'apis-READ',
            expiration: {
                maxEntries: 16,
                maxAgeSeconds: 30 * 24 * 60 * 60 // 30 days
            },
            networkTimeoutSeconds: 10 // fall back to cache if api does not response within 10 seconds
        }
   },
   {
        urlPattern: //api/.*$/i,
        handler: 'NetworkOnly',
        method: 'POST',
        options: {
            backgroundSync: {
                name: 'harvest-background-sync'
            }
        }
    },
 

Похоже, что он кэширует запросы GET, но ничего не делает с запросами POST.

Комментарии:

1. Что, если вы удалите параметр cacheName? Вы не кэшируете его, вы ставите его в очередь. Он должен появиться на вкладке приложения Chrome devtools / фоновая синхронизация

2. Я пробовал это, но все равно безуспешно. Знаете ли вы какие-либо руководства о том, как заставить next-pwa работать с фоновой синхронизацией?

Ответ №1:

Ошибка пользователя. У меня был некоторый код в приложении, который проверял navigator.online и пропускал запросы, если клиент отключен. Отлично работает с приведенной выше конфигурацией после ее удаления.