浏览器打开时,Web 推送通知工作正常。但是在浏览器关闭的情况下,不确定通知是否在排队,因为重新打开时通知没有显示。
我尝试设置 TTL,但它仍然不起作用,所以我认为关闭浏览器时通知没有排队。
您可以使用 Web 定期后台同步 API 您也可以离线运行此功能,即使应用程序已关闭,它也不需要后端服务器进行推送,因为它会定期由服务工作者触发(我猜至少 24 小时(
在项目文件中注册同步事件:
registration.periodicSync.register(constants.periodicBgSyncEventName, {
minInterval: syncMinInterval,
networkState: "any",
});
在服务工作进程文件中,侦听同步并显示 Web 通知:
self.addEventListener("periodicsync", (event) => {
if (event.tag === constants.periodicBgSyncEventName) {
self.registration.showNotification("Wake Time !!!", {
body: `Hi, Good Morning`,
});
}
});
注意 - 若要使用此定期同步 API,需要先安装 PWA。