我开发了名为Reminder App的chrome扩展程序,其中我使用了Alarm API,允许用户设置闹钟,App有两个部分创建单个提醒(例如在上午10:20)并创建多个提醒(例如每50个分钟),当在打包的应用程序(上传到网上商店后)后,我设置了两个提醒
1.10:20 AM(上午10:18:10)
2.每10分钟(上午10:19:10)
在本地(无包装应用程序)两个警报触发正好在上午10:20,但同样的情况在打包应用程序第一个警报在上午10:20关闭但第二个在上午10:21(而不是10:20)关闭AM)。
我怎样才能让它们同步?
是否因为Alarm API Doc中的陈述?
为了减轻用户计算机的负担,Chrome会每隔1分钟将警报限制为最多一次,但可能会将警报延迟一次。 [...]
为了帮助您调试应用或扩展程序,当您将其解压缩后,警报的触发频率没有限制。
答案 0 :(得分:0)
如Alarm API Doc中所述,并且如您所述:
Chrome会将警报限制为每1分钟最多一次,但可能会延迟警报 任意数量。
另一种可能对你有用的方法是追加'新提醒的文本,其中包含具有相同预定时间的警报名称。
这可以通过检查新警报是否匹配已设置的所有警报的任何预定时间来完成。如果是这样,您可以清除该特定警报并使用附加文本创建一个新警报。然后,当触发onAlarm()时,您可以处理附加文本。
[注意:我还没试过这个]
答案 1 :(得分:0)
我使用@Zig Mandel建议的settimeout()或setinterval()函数解决了它,我现在不再使用chrome alarm API,我只是使用Storage API存储数据并使用后台页面中的setinterval函数每1秒轮询一次来自存储。