Chrome浏览器扩展开发系列之九:Chrome浏览器的chrome.alarms.* API
Chrome浏览器扩展程序通过chrome.alarms.* API,可以制定计划周期性地执行代码,或在指定时间执行代码。
要使用chrome.alarms.* API,首先需要在manifest.json文件中声明alarms授权如下:
{
"permissions": [
"alarms"
],
}
chrome.alarms.Alarm对象的属性如下:
属性名 |
类型 |
必选/可选 |
注释 |
name |
string |
必选 |
alarm的名字 |
scheduledTime |
double |
必选 |
触发alarm的时间,单位ms |
periodInMinutes |
double |
可选 |
非null表示alarm周期性执行的时间间隔,单位minute |
chrome.alarms API中的常用方法:
· 创建一个alarm
chrome.alarms.create(string name, object alarmInfo)
这是一个同步方法,name属性可选,为空时表示””。alarmInfo对象的属性如下:
属性名 |
类型 |
必选/可选 |
注释 |
when |
double |
可选 |
触发alarm的时间,单位ms |
delayInMinutes |
double |
可选 |
onAlarm事件发出的延迟时间,单位minute |
periodInMinutes |
double |
可选 |
非null表示alarm周期性执行的时间间隔,单位minute |
在alarmInfo指定的时间创建一个新的alarm,同时发出onAlarm事件。如果已经有重名的alarm则替换已有的alarm。
为了降低创建alarm对运行效率的影响,Chrome浏览器限制一分钟内最多只能有一个alarm,任何可能突破该限制的alarm都将被推迟任意时间。当然调试过程中没有该限制。
· 获取指定名字的alarm
chrome.alarms.get(string name, function(Alarm alarm) {...})
· 获取所有alarm
chrome.alarms.getAll(function(array of Alarm alarms) {...})
· 通过名字删除alarm
chrome.alarms.clear(string name, function(boolean wasCleared) {...})
· 清除所有alarm
chrome.alarms.clearAll(function(boolean wasCleared) {...})
· 监听alarm发生的事件,用于event page
chrome.alarms.onAlarm.addListener(function(Alarm alarm) {...})
回调函数中的alarm就是触发事件的alarm对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!