Chrome扩展-Chrome报警API为创建的每个新报警重新安排所有报警

Chrome Extension - Chrome Alarm API rescheduling all alarm after for each new alarm created

本文关键字:新安排 新报警 报警 -Chrome 扩展 API 创建 Chrome      更新时间:2023-09-26

我开发了名为Reminder App的chrome扩展,其中我使用了Alarm API,允许用户设置警报,App有两个部分创建单个提醒(例如上午10:20)和创建多个提醒(例如每50分钟一次),当在打包的应用程序中时(上传到网店后),我设置了两个提醒

上午1.10:20(上午10:18:10)

2.每10分钟(上午10:19:10)

在本地(未包装的应用程序)中,两个警报都是在上午10:20触发的,但相同的场景在打包的应用程序中,第一个警报在上午10:20AM响起,但第二个警报在10:21AM响起(而不是上午10:20)。

如何使两者同步?

是否是因为警报API文档中的声明?

为了减少用户机器上的负载,Chrome将警报限制为最多每1分钟一次,但可能会延迟任意数量的警报。[…]

为了帮助你调试你的应用程序或扩展程序,当你打开包装加载它时,警报的触发频率没有限制。

如警报API文件中所述以及您所引用的:

Chrome将警报限制为最多每1分钟一次,但可能会延迟任意数量的更多。

另一种可行的方法是在新提醒的文本中"附加"具有相同scheduledTime的警报名称。

这可以通过检查新警报是否与已设置的所有警报的任何计划时间相匹配来完成。如果是这样,您可以清除特定的警报,并创建一个带有附加文本的新警报。然后,当onAlarm()被触发时,您可以处理附加的文本。

[注意:我还没有尝试过]

我按照@Zig Mandel的建议使用settimeout()或setinterval()函数解决了这个问题,我现在不再使用chrome报警API,我只是使用Storage API存储数据,并使用setinterval函数每隔1秒在后台页从存储中轮询一次。