1

通常,浏览器每隔几个小时检查一次扩展更新,您可以通过单击“立即更新扩展”按钮手动覆盖它。我想做到这一点,并让我的扩展能够在可用的那一刻进行更新。通过 Ajax,它检查服务器的价值并知道有可用的更新。我想让他们告诉浏览器更新它。这可能吗?

这是一个在外部托管的打包扩展:http: //developer.chrome.com/dev/extensions/hosting.html

更新:这是工作代码!

索引.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello World</title>
    <link href="styles/main.css" rel="stylesheet">
    <script src="test.js"></script>
</head>
<body>
    <h1>Hello, World 2 again 17!</h1>
</body>
</html>

test.js(监听文档点击并告诉后台更新的内容脚本)

window.onload = function()
{
    document.body.onclick = function()
    {
        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.");
                }
        });
    }
}

main.js(后台脚本)

//You need to put reload in this callback
chrome.runtime.onUpdateAvailable.addListener(function(details) {
  console.log("updating to version " + details.version);
  chrome.runtime.reload();
});
4

1 回答 1

2

你试过使用chrome.runtime.requestUpdateCheck()吗?您的代码可能是这样的:

chrome.runtime.requestUpdateCheck(function(status,details){});
chrome.runtime.onUpdateAvailable(function(details){
    console.log('Updating to version: ' + details.version);
    chrome.runtime.reload();
});
于 2013-06-06T00:18:23.107 回答