gpt4 book ai didi

javascript - 然后服务 worker 注册 - 未定义不是一个函数

转载 作者:行者123 更新时间:2023-12-01 15:10:03 24 4
gpt4 key购买 nike

我使用默认的 React 代码来注册 service worker。我在 bugsnag 中报告了一些用户正在获取 TypeError: undefined is not a function上线.then(registration => {在 registerValidSW 中。

对我来说它正在工作,但对某些人来说可能没有。我没有发现哪里有问题。

你能帮我解决这个问题吗?

export function register() {
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
if (publicUrl.origin !== window.location.origin) {
return;
}

window.addEventListener('load', () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;

if (isLocalhost) {
.......
} else {
registerValidSW(swUrl);
}
});
}
}

function registerValidSW(swUrl) {
navigator.serviceWorker
.register(swUrl)
.then(registration => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
if (installingWorker == null) {
return;
}
installingWorker.onstatechange = () => {
...
};
};
})
.catch(error => {
console.error('Error during service worker registration:', error);
});
}

最佳答案

Serviceworker 及其方法包括register are supported on all latest browsers excluding IE .
已经注意到,即使 serviceWorker可通过 navigator 访问, 属性(property) register不存在,它应该总是返回一个 promise 。
Chromium bug for the same.
目前,您可以通过添加以下检查来避免此问题:

'serviceWorker' in navigator && 'register' in navigator.serviceWorker

关于javascript - 然后服务 worker 注册 - 未定义不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54501561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com