我想写一个在指定时间每天显示桌面通知的扩展程序。快速浏览Chrome API,似乎唯一的方法是:
(最后一步的细节与我的问题无关,只是表明我意识到我需要防止通知的“拍打”。
这似乎是间接的,但可能很昂贵;有没有办法解决?是否需要背景页面?
我想我只能调用setTimeout()并且只触发事件一次(通过计算现在和所需时间之间的长度),然后在显示通知后再次调用它。由于某种原因听起来更“脆弱”,但我不确定为什么......
答案 0 :(得分:1)
我想你会希望背景页面顺利完成。您不能使用内容脚本,因为您需要保持“状态”/计时器。
因此,当后台页面首次加载(浏览器启动)时,您将计算当前时间和下一个通知时间的偏移量以及setInterval到该确切时间间隔。这样你就不需要每隔五分钟轮询和/或如果你已经显示消息就可以解决问题。您只需在确切的时间显示它。这必须比投票更有效,更有效和更清洁。在通知时,您只需重新设置间隔。
这里有一些示例函数:
setTimeout but for a given time
通过阅读上面的帖子和网上的快速搜索,您可以毫无问题地调用setInterval作为间隔,例如每天一次。凯文建议25天!
这就是我接近它的方式。
编辑:由于发布了一件令人想到的事情,如果一台电脑在n小时内休眠会发生什么?我需要自己测试一个类似的项目,所以一旦我有机会测试它,我会更新。