【问题标题】:How to implement background sync with nuxtjs/pwa?如何使用 nuxtjs/pwa 实现后台同步?
【发布时间】:2019-08-27 08:45:09
【问题描述】:

我正在尝试通过@nuxt/pwa-module 在 Nuxtjs 中使用工作箱背景同步。

这是我在nuxt.config.js 文件中的工作箱属性:

workbox: {

    importScripts : [
        'sw-background-sync.js'
    ]

}

plugins/sw-background-sync.js 文件的内容:

console.log("backsync called")
workbox.routing.registerRoute(
    'https:\/\/example.com\/api\/Survey\/post.*',
    new workbox.strategies.NetworkOnly({
        plugins: [
            new workbox.backgroundSync.Plugin('myQueueName', {
                maxRetentionTime: 24 * 60
            })
        ]
    }),
    'POST'
);

默认情况下,离线缓存应该可以工作,并且工作正常。但是当我取消注释 importScripts 并刷新页面时,我在控制台中收到此错误:

backsync called
workbox-sw.js:1 Uncaught Error: Config must be set before accessing workbox.* modules
    at Proxy.setConfig (workbox-sw.js:1)
    at sw.js:8

任何关于如何使用 nuxtjs 实现 pwa 后台同步的示例都将不胜感激。

非常感谢。

【问题讨论】:

    标签: vuejs2 progressive-web-apps nuxt.js


    【解决方案1】:

    其实我应该把脚本放在nuxt.config.js文件的workboxExtensions属性里面:

    workbox: {
    
        workboxExtensions : '@/plugins/sw-background-sync.js'
    }
    

    【讨论】:

    • workboxExtensionsplugins有什么区别?
    • sw-background-sync 实际上是一个插件,您应该在workboxExtensions 选项中使用它才能工作。这就是 pwa 模块的工作原理。这是一个约定
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2020-03-21
    • 2019-11-23
    • 2020-05-19
    • 2017-12-08
    • 2021-02-19
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多