我正在开发Chrome扩展程序,因为据我所知,当Chrome商店中有新版本时,Chrome Developer Dashboard会自动为用户更新新版本。但是我想在用户接受更新之前通知用户知道有新的版本扩展吗?
答案 0 :(得分:2)
有一个事件允许您拦截"更新可用"只要你的扩展程序正在运行状态:
当更新可用时触发,但由于该应用当前正在运行,因此未立即安装。
但是,您无法允许用户取消更新。它将在下次Chrome重新启动时安装:
如果您不执行任何操作,则下次卸载后台页面时将安装更新,如果您希望在明确调用
chrome.runtime.reload()
之前安装更新。如果您的扩展程序使用的是持久性后台页面,那么后台页面当然永远不会被卸载,因此除非您手动调用chrome.runtime.reload()
以响应此事件,否则在下次chrome自身重新启动之前不会安装更新。
此事件的目的是允许您的扩展程序在更新之前正常结束操作。如果你不听这个事件:
如果没有处理程序正在侦听此事件,并且您的扩展程序具有持久性背景页面,则其行为就像调用
chrome.runtime.reload()
以响应此事件一样。
您无法在客户端上停止更新,但可以延迟更新。
chrome.runtime.onUpdateAvailable.addListener( function(details) {
// Show a dialog to the user that an update to version `details.version`
// is available, and ask if they want to update now
if (updateNow) {
// Gracefully terminate all work
chrome.runtime.reload();
}
});
并且在更新后检测 它发生了(并且可能向用户提供更改日志等),
你可以听onInstalled
事件:
首次安装扩展程序时,扩展程序更新为新版本以及Chrome更新为新版本时触发。
chrome.runtime.onInstalled.addListener( function(details) {
switch(details.reason) {
case "install":
// First installation
break;
case "update":
// First run after an update
break;
}
});