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

问题描述 投票:0回答:1

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

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

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

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

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

google-chrome-extension
1个回答
1
投票

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

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

这里有一些示例函数:

setTimeout but for a given time

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

这就是我接近它的方式。

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

© www.soinside.com 2019 - 2024. All rights reserved.