如何让Chrome应用尽快更新?

时间:2013-04-02 21:59:05

标签: google-chrome-app

在Chrome网上应用店中部署Chrome打包应用并发布更新,用户可以自动接收应用更新。在某些情况下,您想知道正在运行的应用程序是否是最新的,并更新它。 E.G:

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

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

3 个答案:

答案 0 :(得分:24)

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.");
  }
});

答案 1 :(得分:0)

根据您的应用程序,当检测到更新时,您可能希望使用setTimeout之类的内容并稍后致电chrome.runtime.restart()chrome.runtime.restart()

答案 2 :(得分: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每当Google扩展程序首次安装(全新安装),更新Google扩展程序或更新Google chrome时调用。