是否有任何显示通知消息让用户知道新版本更新?

时间:2014-10-29 07:49:20

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

我正在开发Chrome扩展程序,因为据我所知,当Chrome商店中有新版本时,Chrome Developer Dashboard会自动为用户更新新版本。但是我想在用户接受更新之前通知用户知道有新的版本扩展吗?

1 个答案:

答案 0 :(得分:2)

有一个事件允许您拦截"更新可用"只要你的扩展程序正在运行状态:

  

onUpdateAvailable

     

当更新可用时触发,但由于该应用当前正在运行,因此未立即安装。

但是,您无法允许用户取消更新。它将在下次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事件:

  

onInstalled

     

首次安装扩展程序时,扩展程序更新为新版本以及Chrome更新为新版本时触发。

chrome.runtime.onInstalled.addListener( function(details) {
  switch(details.reason) {
    case "install":
      // First installation
      break;
    case "update":
      // First run after an update
      break;
  }
});