Safari iOS 11.3 не добавляется в workbox-background-sync

Я следовал руководству по сервисным работникам и фоновой синхронизации: https://codelabs.developers.google.com/codelabs/workbox-indexeddb/index.html?index=..%2F..%2Findex#0

При работе в Safari iOS 11.3.1 служебный воркер регистрируется, так как об этом сообщается в журнале (служебный воркер установлен '). Но я не понимаю Ура! Рабочая панель загружена ???? сообщение.

IndexedDB работает нормально, объекты обновляются каждый fetch с сервера.

Однако, когда я намеренно перехожу в автономный режим и выполняю POST, в очередь IndexedDB ничего не записывается. У меня следующие вопросы: 1. Где я могу проверить сервисных работников в Web Inspector? 2. Поддерживает ли workbox-background-sync Safari iOS 11.3.1? И если да, что не так с моей настройкой?


person June Lau    schedule 02.05.2018    source источник
comment
См. github.com/GoogleChrome/workbox/issues/.   -  person Jeff Posnick    schedule 02.05.2018


Ответы (1)


У вас есть ошибка сервис-воркера, поэтому Workbox не загружается. В этом примере вам нужно добавить выражение регулярного выражения:

Замените на обслуживающем работнике следующее:

workbox.routing.registerRoute(
  \/api\/add,
  networkWithBackgroundSync,
  'POST'
);

Используя это:

const bgSyncPlugin = new workbox.backgroundSync.Plugin('offlineQueue', {
  maxRetentionTime: 48 * 60 // 48 hours retention on Indexed DB (up to your needs)
});

workbox.routing.registerRoute(
      new RegExp('./api\/add'),
      workbox.strategies.networkOnly({
        plugins: [bgSyncPlugin]
      }),
      'POST'
    );

В Safari 11.3.1 вы сможете выполнить только запрос, но полная фоновая поддержка пока не поддерживается. проверьте: https://github.com/GoogleChrome/workbox/issues/1466

person Jorge Valvert    schedule 20.08.2018