在Chrome网上应用店中部署Chrome打包应用并发布更新,用户可以自动接收应用更新。在某些情况下,您想知道正在运行的应用程序是否是最新的,并更新它。 E.G:
chrome.runtime.requestUpdateCheck()的文档提供的状态为"throttled"
,"no_update"
,"update_available"
,但未指明如果需要更新版本该怎么做。
答案 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时调用。