首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展:主窗口关闭后chrome.alarms无法工作

Chrome扩展:主窗口关闭后chrome.alarms无法工作
EN

Stack Overflow用户
提问于 2020-07-21 06:41:31
回答 1查看 1K关注 0票数 0

我希望使用chrome.alarms API每隔几个小时检查一次扩展中的某个值。当主窗口页打开时,警报正在触发,但当主窗口关闭时,警报不再触发。我的事件侦听器和警报创建在后台页面上。在我的background.js中,我试图使一个通知出现在一个正常的间隔,以测试警报。

这是我的“background.js”的相关部分:

代码语言:javascript
复制
document.addEventListener("DOMContentLoaded", function(e) {

  chrome.runtime.getBackgroundPage(function(bg) {
      bg.chrome.alarms.create("beep", {delayInMinutes: 1, periodInMinutes: 0.1} );
  });

  var opt = {
    type: "basic",
    title: "Task due",
    message: 'A task is due tomorrow.',
    iconUrl: "chrome-extension://paomcbcgpoikdcjhbanhllhdbemcjokf/Agenda_32.png",
    buttons: [
      {
      title: 'Mark as done'
      }
    ]
  }
  

  function clr() {
    chrome.notifications.clear('tst');
  }
  
  chrome.alarms.onAlarm.addListener(function(alarm) {
    console.log("beeep");
    clr();
    chrome.notifications.create('tst', opt);
  });
});

我怎样才能使警报触发,即使在我的主窗口关闭之后?我读过一些有关这方面的文件,但是解决这个问题的方法却让我无法理解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-21 08:00:43

只有当用户配置文件的至少一个浏览器窗口正在运行时,扩展才会运行,除非您在manifest.json中特别添加了一个manifest.json:

代码语言:javascript
复制
"permissions": ["background"],
"background": {
  "persistent": true,
  "scripts": ["bg.js"]
}

让Chrome启动得更早,关闭得更晚,这样应用程序和扩展程序的寿命就会更长。当任何已安装的托管应用程序、打包应用程序或扩展程序都具有“后台”权限时,Chrome在用户启动Chrome之前就会在用户登录到他们的计算机后立即运行(无形中)。“后台”权限还使Chrome继续运行(即使关闭了最后一个窗口),直到用户显式退出Chrome为止。

重要!

确保在Chrome设置中启用了Continue running background apps

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63008790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档