我已经开发了一个Chrome扩展程序,该程序可以抓取多个站点,并且偶尔崩溃。我仍在研究它,但我想开发另一个扩展,以检查抓取扩展是否仍然有效,如果不能,请重新启动它。
要实现这一目标,我做了以下工作:
我创建了每分钟运行一次的闹钟
var alarmName = 'Restarter';
chrome.alarms.get(alarmName, function(Alarm)
{
if (typeof Alarm === 'undefined')
{
console.log('is not defined');
chrome.alarms.create(alarmName,
{
periodInMinutes: 1
});
}
else
{
console.log('is defined');
}
});
我创建了一个侦听器来触发警报
chrome.alarms.onAlarm.addListener(异步函数(警报) {
// first get your target (child) extension by it's name
var child = null;
found = 0;
chrome.management.getAll(function (info)
{
for (var i=0; i < info.length; i++)
{
console.log(info[i].name);
if ((info[i].name == 'Scraper v10bg'))
{
found = 1;
break;
}
}
});
if (found == 0)
{
console.log('not found');
enabled=1;
chrome.management.setEnabled ("jalmlhajpmhnfajphkjlfedjdokhaabg", enabled, function ()
{
console.log('restarted');
});
}
else
{
console.log('found');
}
});
此代码执行以下操作: -检查所有启用的扩展 -如果找不到我想要的扩展名(Scraper v10bg),它将尝试重新启动
此代码运行时,出现以下错误消息: 未捕获(承诺)TypeError:调用management.setEnabled(字符串ID,启用了布尔值,可选函数回调)时出错:没有匹配的签名。
我100%确认ID是正确的,但我不知道签名问题的含义。
您对我如何实现这一目标有任何想法吗?
谢谢
洛朗