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

时间:2013-04-24 14:53:56

标签: javascript html5 google-chrome-extension angularjs

我正在使用angluarJS进行镀铬扩展,现在我有一个问题让我大脑烧伤。
我想获取数据,解析数据并将解析后的数据存储在后台页面的localStorage中,并在浏览器操作中获取该数据并在弹出的html中显示。现在我想抓住 重复解析和存储数据,如上所述[{3}},我使用chrome.alarms api来做到这一点,但它无法正常工作。

这是我在后台控制器中的代码:

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 dev工具中检查时,它会反复显示:

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

也就是说,函数courseService.getCourses()根本不是callec。这就是我遇到的问题。

请帮助我!!

1 个答案:

答案 0 :(得分:-1)

您可以添加"闹钟" manifest.json中的权限

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

"权限":[   "警报&#34 ;,   ...   ... ],