如何确保通过 Chrome 扩展 API 创建的警报持久存在?

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

官方文档关于警报持久性是这样说的:

警报通常会持续存在,直到更新扩展为止。但并不能保证这一点,重启浏览器后警报可能会被清除。因此,请考虑在创建警报时在存储中设置一个值,然后确保每次服务工作线程启动时该值都存在。

我发现缺少一种确保工作人员在警报被清除时真正启动的方法。是否有工作人员应该注册的推荐事件(警报事件除外)以确保开始重新创建警报?

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

只需使用 onInstalled 事件来检查警报,如果没有则重新创建警报:

// the extension was installed/updated or the browser was updated
chrome.runtime.onInstalled.addListener(() => {
  chrome.alarms.get('foo', alarm =>
    if (!alarm) chrome.alarms.create('foo', { periodInMinutes: 60 });
  });
});

chrome 扩展的文档再次具有误导性、自相矛盾且过于复杂:使用

storage
的建议显然是由不知道存在
chrome.alarms.get
的人编写的,并且在
chrome.runtime.onInstalled
中它不检查扩展的
update
,根据上面文档本身的描述,警报可能会中断,浏览器更新也不会中断。呃。

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