javascript - chrome.alarms api 无法与 angularJS 正常工作

标签 javascript html google-chrome-extension angularjs

我正在使用 angluarJS 开发 chrome 扩展,现在我遇到了一个完全烧伤我大脑的问题。
我想抓取数据,解析该数据并将解析后的数据存储在后台页面的 localStorage 中,然后在浏览器操作中获取该数据并将其显示在弹出的 html 中。现在我想捕获
,重复解析和存储数据,如提到的http://developer.chrome.com/extensions/alarms.html ,我使用 chrome.alarms api 来做到这一点,但它不能正常工作。

这是我在后台 Controller 中的代码:

app.controller('bgCtrl', function AlfredCtrl($scope, courseService) {
  var setLocal = function(){
      console.log("fired inside setLocal(), but out of getCourses()");
      courseService.getCourses().then(function (events){
          console.log("fired inside of getCourses()");
          localStorage.setItem("deadlines", JSON.stringify(events.deadlines));
      })
  };

  var delay = 1 ;
  chrome.alarms.create("scheduleRequest", {periodInMinutes: delay});

  chrome.alarms.onAlarm.addListener(function(alarm){
      if(alarm.name == "scheduleRequest"){
          console.log("fired out of setLocal()");
          setLocal();
      }
  });
});

函数 getCourses() 是从 bg 中的服务返回的。当它被调用时,它会返回解析后的数据。

当我在 chrome 开发工具中检查时,它重复显示:

fired out of setLocal().                           bgCtrl.js:32
fired inside setLocal(), but out of getCourses().  bgCtrl.js:7

也就是说,函数 courseService.getCourses() 根本没有被调用。这就是我遇到的问题。

请帮助我!!

最佳答案

您可以在manifest.json中添加“alarms”权限

这样您的应用就可以访问 Chrome api 的闹钟功能

“权限”:[ “警报”, ... ... ],

关于javascript - chrome.alarms api 无法与 angularJS 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16195207/

相关文章:

javascript - chrome 扩展 chrome.tabs.onUpdated 运行两次?

javascript - Foundation 6,粘性菜单和 offcanvas 位置固定

javascript - 滚动 HTML 元素的内容,而不是整个窗口对象

javascript - 表单验证器检查选项并选择检查不起作用

javascript - 如何使用纯javascript在当前网页中附加带有CSS、JS的HTML内容?

javascript - jQuery 和动态选项卡和数据

javascript - 数据表右对齐

javascript - 内存中的数据存储 - Javascript

javascript - 使用 react Hook 隐藏和显示名称

javascript - 如何从 Chrome 扩展程序触发 knockout View 模型更改?