我有一个Chrome扩展程序,可以在标签页中打开自己的html页面(即网址为chrome-extension://extension-id/myPage.html
)。更新扩展程序时,这些选项卡都会自动关闭,我想阻止这些。
我发现处理这个问题的唯一建议是使用runtime.onUpdateAvailable和/或runtime.onSuspend。但在我的测试案例中,它们都没有运行!
我在Chrome网上应用店中有一个私人测试用例扩展程序,因此它正在使用正常的更新过程。安装或更新扩展时,runtime.onInstalled
将清单版本号保存在本地存储中。 browserAction按钮打开一个新选项卡,并将本地存储的内容打印到后台页面的控制台。
onUpdateAvailable代码是一个跟随,我对onSuspend有类似的东西:
chrome.runtime.onUpdateAvailable.addListener(function(details) {
chrome.tabs.query({}, function(tabs) {
chrome.storage.local.set({
ouaTabs: tabs,
ouaTabVer: chrome.runtime.getManifest().version
});
});
chrome.storage.local.set({onUpdateAvailable: chrome.runtime.getManifest().version});
});
当我打印本地存储的内容时,我看到的是安装和更新细节。没有显示onUpdateAvailable或onSuspend。
查看onUpdateAvailable的文档,也许我不应该感到惊讶:
“更新可用时触发,但由于应用当前正在运行,因此未立即安装。” https://developer.chrome.com/extensions/runtime#event-onUpdateAvailable
显然,立即安装了更新,这就是问题所在!但人们说这是正确使用的功能。所以问题是......扩展需要做什么才能让Chrome认为它“正在运行”或是否有另一种方法来中断自动更新?