16

部署 chrome 打包的应用程序并在 chrome 网上商店发布更新允许用户自动接收应用程序更新。在某些情况下,您想知道正在运行的应用程序是否是最新的,并对其进行更新。例如:

  • 只是让用户使用最新版本。
  • 检测应用程序和服务器端 API 之间的不匹配,并要求客户端应用程序更新以使用新的服务器端 API。

chrome.runtime.requestUpdateCheck()的文档提供了 , , 的状态,"throttled"但没有说明如果需要更新版本该怎么做。"no_update""update_available"

4

3 回答 3

28

安装一个监听器chrome.runtime.onUpdateAvailable,当新的 .crx 文件已经下载并且新版本准备好安装时触发。然后,调用chrome.runtime.requestUpdateCheck

chrome.runtime.onUpdateAvailable.addListener(function(details) {
  console.log("updating to version " + details.version);
  chrome.runtime.reload();
});

chrome.runtime.requestUpdateCheck(function(status) {
  if (status == "update_available") {
    console.log("update pending...");
  } else if (status == "no_update") {
    console.log("no update found");
  } else if (status == "throttled") {
    console.log("Oops, I'm asking too frequently - I need to back off.");
  }
});
于 2013-04-05T19:31:10.880 回答
0

根据您的应用程序,当检测到更新时,您可能需要使用类似setTimeout和调用chrome.runtime.restart()chrome.runtime.restart()稍后

于 2016-04-08T20:38:54.643 回答
0

根据您需要的 Google Chrome 文档

chrome.runtime.onUpdateAvailable.addListener(function(details) {
  chrome.runtime.reload(); // To restart the chrome App instantaneously
});

但这需要时间将 JS 更改反映到 chrome 中,因为 background.js 已加载到后台,需要卸载并再次加载

要应对这种情况,您需要包括

chrome.runtime.onInstalled.addListener(function(details) {
  chrome.runtime.reload();
});

还有。

每当第一次安装谷歌扩展(全新安装)、谷歌扩展更新或谷歌浏览器更新时,都会调用 onInstalled。

于 2019-06-26T17:51:15.597 回答