我正在开发chrome扩展,因为我知道Chrome开发者仪表板会在chrome商店中有新版本时自动更新新版本给用户。但是我想在用户接受更新之前通知用户有新的版本扩展吗?
发布于 2014-10-29 17:32:41
只要您的扩展正在运行,就有一个事件允许您拦截“更新可用”状态:
在更新可用但由于应用程序当前正在运行而未立即安装时激发。
但是,您不能允许用户取消更新。它将在下次重启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();
}
});要在更新后检测它是否发生(并可能向用户显示changelog,等等),您可以监听onInstalled事件:
在第一次安装扩展时,当扩展更新到新版本时,以及当Chrome更新到新版本时激发。
chrome.runtime.onInstalled.addListener( function(details) {
switch(details.reason) {
case "install":
// First installation
break;
case "update":
// First run after an update
break;
}
});https://stackoverflow.com/questions/26625128
复制相似问题