在Android版Chrome上进行后台同步需要Service-Worker重新启动才能进行同步

时间:2018-12-12 22:11:04

标签: workbox

受影响的图书馆: workbox-sw,workbox-background-sync

浏览器和平台例如适用于Android的Google Chrome 70

问题在chrome桌面上使用后台同步时,一切都可以正常运行。当我移至移动设备时,后台同步将不会触发,直到我进入chrome://serviceworker-internals并重新启动工作程序为止。这不应该在移动Chrome中工作吗? chrome在Android上支持后台同步api。

https://www.caniuse.com支持所有功能

这是github上的代码。

https://github.com/kdesimini/httpsprototypingtest

Service-worker.js

importScripts('workbox-3.6.3/workbox-sw.js');
workbox.setConfig({
    debug: false,
    modulePathPrefix: 'workbox-3.6.3/'
});
workbox.skipWaiting();
workbox.clientsClaim();
workbox.precaching.precacheAndRoute([]);    
workbox.routing.registerRoute(
    /(http[s]?:\/\/)?([^\/\s]+\/)/,
    workbox.strategies.networkOnly({
        plugins: [
            new workbox.backgroundSync.Plugin('requestsQueue', {
            maxRetentionTime: 24 * 60 // Retry for max of 24 Hours
                })
            ]
        }),
    'POST'
)

workbox-config.js

module.exports = {
    "globDirectory": "dist/testyo/",
    "globPatterns": [
        "index.html",
        "*.js",
        "*.css"
        ],
        "dontCacheBustUrlsMatching": new RegExp('.+\.[a-f0-9]{20}\..+'),
        "maximumFileSizeToCacheInBytes": 5000000,
        "swSrc": "src/service-worker.js",
        "swDest": "dist/testyo/service-worker.js"
};

0 个答案:

没有答案