每天在特定时间显示Chrome桌面通知

时间:2012-04-05 16:14:44

标签: google-chrome-extension

我想写一个在指定时间每天显示桌面通知的扩展程序。快速浏览Chrome API,似乎唯一的方法是:

  • 为我的扩展程序创建一个后台页面,
  • 使用分辨率足够低的setInterval()不对CPU征税(即使5分钟也没问题),
  • 当间隔触发时,检查当前时间是否在所需时间之后,
  • 确保用户今天尚未显示通知。

(最后一步的细节与我的问题无关,只是表明我意识到我需要防止通知的“拍打”。

这似乎是间接的,但可能很昂贵;有没有办法解决?是否需要背景页面?

我想我只能调用setTimeout()并且只触发事件一次(通过计算现在和所需时间之间的长度),然后在显示通知后再次调用它。由于某种原因听起来更“脆弱”,但我不确定为什么......

1 个答案:

答案 0 :(得分:1)

我想你会希望背景页面顺利完成。您不能使用内容脚本,因为您需要保持“状态”/计时器。

因此,当后台页面首次加载(浏览器启动)时,您将计算当前时间和下一个通知时间的偏移量以及setInterval到该确切时间间隔。这样你就不需要每隔五分钟轮询和/或如果你已经显示消息就可以解决问题。您只需在确切的时间显示它。这必须比投票更有效,更有效和更清洁。在通知时,您只需重新设置间隔。

这里有一些示例函数:

setTimeout but for a given time

通过阅读上面的帖子和网上的快速搜索,您可以毫无问题地调用setInterval作为间隔,例如每天一次。凯文建议25天!

这就是我接近它的方式。

编辑:由于发布了一件令人想到的事情,如果一台电脑在n小时内休眠会发生什么?我需要自己测试一个类似的项目,所以一旦我有机会测试它,我会更新。