这是我第一次与Service Workers和通知有关的技术打交道。
我正在尝试在指定时间显示一个通知。我尝试在Service Worker中执行以下操作:
function showNotification() {
setTimeout(function () {
self.registration.showNotification('Title', {
body: 'body blablabla',
badge: 'assets/images/logo.jpeg',
icon: 'assets/images/logo.jpeg',
renotify: false,
requireInteraction: true,
silent: false,
vibrate: [200, 100, 200],
dir: 'ltr',
lang: 'en-US'
});
}, 3000);
}
我尝试过,但没有收到任何通知。当我删除setTimeout函数后,就会收到通知,所以我认为这与超时有关。是否还有其他方法,或者我遗漏了什么?谢谢!
waitUntil
来确保服务工作者在超时触发之前保持活动状态。即使如此,浏览器也可能会在超时期间内杀死服务工作者。等待时间越长,机会越大。但这是一件好事。想象一下,您曾经访问的每个页面都有一个服务工作者,每个服务工作者都不断触发超时以发送某些分析数据。 - lordvlad