检测是否安装了其他Chrome扩展程序

时间:2016-03-24 03:33:25

标签: google-chrome google-chrome-extension

我正在为Chrome开发一个扩展程序,但我希望我的扩展程序只有在禁用/删除其他扩展程序时才能正常工作。

这意味着当我的用户安装我的扩展程序时,我想告诉他们“如果您安装我的扩展程序,则必须接受禁用此其他扩展程序”。

如果另一个分机处于活动状态,我不希望我的分机正常工作。

你知道我该怎么办吗?

1 个答案:

答案 0 :(得分:2)

检测是否安装了其他扩展程序:

1)更新manifest.json以包含必要的management权限:

{
    "name": "My extension",
    ...
    "permissions": [
      "management"
    ],
    ...
}

2)检查扩展是否已安装2个选项:

a)如果您知道扩展程序ID,请使用chrome.management.get(extensionId, function callback)方法:

 var extensionId = '<the_extension_id>';
 chrome.management.get(extensionId, function(extensionInfo) {
    var isInstalled;
    if (chrome.runtime.lastError) {
      //When the extension does not exist, an error is generated
      isInstalled = false;
    } else {
      //The extension is installed. Use "extensionInfo" to get more details
      isInstalled = true;
    }
  });

b)如果你知道扩展名(或任何其他参数),你可以使用chrome.management.getAll(function callback)

var extensionName = '<the_extension_name>';

chrome.management.getAll(function(extensions) {
    var isInstalled = extensions.some(function(extensionInfo) {
       return extensionInfo.name === extensionName;       
    });
});