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

Mor*_*red 2 javascript google-chrome google-chrome-extension

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

在此输入图像描述

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

我检查的文件,它不会出现有任何"免费JSON"启动键,但我想我之前的想法完全放弃要求.我可以轻松地在脚本本身中放置一个全局标志,但我知道我,并且我很容易忘记每次更新都要更改它.

Rob*_*b W 5

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

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

  1. 使用<major>.<minor>版本编号.
  2. 对于较小的更改,请增加<minor>.
  3. 对于需要(弹出/更改日志)通知的主要更改,请增加<major>.

例如:

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?
        }
    }
});
Run Code Online (Sandbox Code Playgroud)