我有一个经常更新的chrome扩展,因此我为它编写了一个更新通知弹出窗口。它会在manifest.version发生更改时显示,以便用户不会错过更新,其中包含需要启用/禁用的新选项。然后我意识到,对于小的大修复等,对用户提出错误是没有意义的。因为我每次更新脚本时都必须更新清单版本,所以我认为在清单中有一个'new_options' : true
字段可以很好地关闭我的脚本。不幸的是,当我尝试它时,我得到了这个:
有没有办法在Chrome清单中添加自己的自定义键/值条目?
我检查了文档,似乎没有任何“免费JSON”启用密钥,但我想在完全放弃这个想法之前我会问。我可以轻松地在脚本本身中放置一个全局标志,但我知道我,并且我很容易忘记每次更新都要更改它。
答案 0 :(得分:5)
虽然"无法识别的清单键' new_options'"警告可以安全地被忽略,我建议不要滥用这种方法来切换功能。扩展程序无法更改其清单文件,因此使用假设的"new_options": true
字段不会非常有用。
管理更新通知的更好方法是始终坚持以下约定并使用chrome.runtime.onInstalled
:
例如:
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?
}
}
});