在Chrome扩展程序清单中指定自定义键?

时间:2014-05-03 18:13:55

标签: javascript google-chrome google-chrome-extension

我有一个经常更新的chrome扩展,因此我为它编写了一个更新通知弹出窗口。它会在manifest.version发生更改时显示,以便用户不会错过更新,其中包含需要启用/禁用的新选项。然后我意识到,对于小的大修复等,对用户提出错误是没有意义的。因为我每次更新脚本时都必须更新清单版本,所以我认为在清单中有一个'new_options' : true字段可以很好地关闭我的脚本。不幸的是,当我尝试它时,我得到了这个:

enter image description here

有没有办法在Chrome清单中添加自己的自定义键/值条目?

我检查了文档,似乎没有任何“免费JSON”启用密钥,但我想在完全放弃这个想法之前我会问。我可以轻松地在脚本本身中放置一个全局标志,但我知道我,并且我很容易忘记每次更新都要更改它。

1 个答案:

答案 0 :(得分:5)

虽然"无法识别的清单键' new_options'"警告可以安全地被忽略,我建议不要滥用这种方法来切换功能。扩展程序无法更改其清单文件,因此使用假设的"new_options": true字段不会非常有用。

管理更新通知的更好方法是始终坚持以下约定并使用chrome.runtime.onInstalled

  1. 使用< major> < minor> 版本编号。
  2. 要进行细微更改,请增加< minor>
  3. 对于需要(弹出/更改日志)通知的主要更改,请增加< major>
  4. 例如:

    chrome.runtime.onInstalled.addListener(function(details) {
        if (details.reason == 'install') {
            // First-run code here.
            // TODO: Thank the user for installing the extension
        } else if (details.reason == 'update') {
            // Check for update
            var versionPartsOld = details.previousVersion.split('.');
            var versionPartsNew = chrome.runtime.getManifest().version.split('.');
            if (versionPartsOld[0] != versionPartsNew[0]) {
                // Major version change!
                // TODO: Show changelog for update?
            }
        }
    });