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

Google chrome extension 每天在特定时间显示Chrome桌面通知,google-chrome-extension,Google Chrome Extension,我想编写一个扩展,在指定的时间每天显示一个桌面通知。快速浏览Chrome API,似乎唯一的方法是: 为我的扩展创建背景页 以足够低的分辨率使用setInterval(),以避免对CPU造成负担(即使5分钟也可以) 间隔触发时,检查当前时间是否在所需时间之后 确保用户今天尚未显示通知 (最后一步的细节与我的问题无关,只是为了表明我意识到我需要防止通知“拍打”) 不过,这似乎相当间接,而且可能很昂贵;这有什么办法吗?需要背景页吗 我想我可以调用setTimeout()并只触发一次事件(通过计算

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

  • 为我的扩展创建背景页
  • 以足够低的分辨率使用setInterval(),以避免对CPU造成负担(即使5分钟也可以)
  • 间隔触发时,检查当前时间是否在所需时间之后
  • 确保用户今天尚未显示通知
(最后一步的细节与我的问题无关,只是为了表明我意识到我需要防止通知“拍打”)

不过,这似乎相当间接,而且可能很昂贵;这有什么办法吗?需要背景页吗


我想我可以调用setTimeout()并只触发一次事件(通过计算从现在到所需时间的间隔),然后在显示通知后再次调用它。出于某种原因,这听起来更“脆弱”,尽管我不确定为什么…

我想你会希望背景页面能够顺利完成这项工作。无法使用内容脚本,因为需要保留“状态”/“计时器”

因此,当第一次加载后台页面(浏览器启动)时,您可以计算出当前时间和到下一个通知时间的偏移量,并将间隔设置为确切的间隔。这样,你就不需要每五分钟进行一次民意调查,也不需要计算出你是否展示了信息。您只需在所需的准确时间显示它。这必须比投票更有效、更干净。在收到通知时,您只需重新设置间隔

以下是一些示例函数:

通过阅读上面的文章和在网上的快速搜索,您似乎可以毫无疑问地调用setInterval来获得一个间隔,例如一天一次。卡尔文建议25天

这就是我的做法


编辑:因为有一件事突然浮现在我的脑海中,那就是如果一台电脑休眠n小时会发生什么?我需要自己为一个类似的项目进行测试,这样一旦有机会测试,我就会更新。

好方法-我认为setInterval更好,因为当您执行setTimeout并延迟一天,浏览器重新启动时,通知将不会显示Hanks hamczu,在浏览器重新启动的情况下,我只需重新启动setInterval计时器,因为我的后台页面将再次收到DOMContentLoaded事件。谢谢Richard,我想我在使用后台页面时有点犹豫,因为Google的文档说明除非需要,否则应该避免使用它们(因为它们使用资源)但这显然是一条路要走。我也想知道休眠的事情,但希望Chrome能考虑到这一点。(顺便说一句,这将是桌面机器的一个内部工具,所以我可能不需要对此太担心……)