检查Chrome扩展程序是否以解压缩模式安装

时间:2012-10-11 00:53:27

标签: google-chrome-extension

有没有办法检测我是否正在运行从我的.crx文件安装的扩展程序,或者是通过“加载解压扩展程序...”按钮加载扩展程序?

我知道在这种情况下ID差异,但我不想依赖代码中的硬编码字符串。

3 个答案:

答案 0 :(得分:25)

如果“从我的.crx文件中安装”意味着从Chrome网上应用店安装,则只需检查扩展程序manifest.json是否有update_url属性的值。当您上传扩展程序时,CWS会添加它。

如果您有自托管的.crx文件,请使用chrome.management.getSelf()获取您的扩展程序信息,然后检查返回的ExtensionInfo对象的installType。如果它显示"development",则表示扩展程序已在开发人员模式下解压缩。 "normal"表示它是从.crx文件安装的。

答案 1 :(得分:24)

以下是如何执行此操作的代码示例:

function isDevMode() {
    return !('update_url' in chrome.runtime.getManifest());
}

Kuoll Remote Web Debugger

中使用

答案 2 :(得分:3)

扩展程序在开发人员模式下运行(即已解压缩),当 包含manifest中的update_url字段时。

这是有效的,因为解压缩的扩展程序的JSON清单文件不应包含update_url字段。 publishing via the Chrome Developer Dashboard时会自动添加此字段。

例如,仅在开发期间出现的调试日志。

const IS_DEV_MODE = !('update_url' in chrome.runtime.getManifest());

function debugLog(str) {
  if (IS_DEV_MODE) console.log(str);
}

debugLog('This only appears in developer mode');