Chrome扩展程序-重新启动/重新启用已崩溃的扩展程序

时间:2019-03-14 17:50:40

标签: google-chrome-extension

我已经开发了一个Chrome扩展程序,该程序可以抓取多个站点,并且偶尔崩溃。我仍在研究它,但我想开发另一个扩展,以检查抓取扩展是否仍然有效,如果不能,请重新启动它。

要实现这一目标,我做了以下工作:

  1. 我创建了每分钟运行一次的闹钟

    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');
    
        }       
    });
    
  2. 我创建了一个侦听器来触发警报

    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是正确的,但我不知道签名问题的含义。

您对我如何实现这一目标有任何想法吗?

谢谢

洛朗

0 个答案:

没有答案