我正在使用 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/