扩展更新时如何展示对应的release note?是否有相关API支持?
浏览器扩展更新后展示Release Note的实现方案
核心可用API
你可以直接使用浏览器扩展标准提供的runtime.onInstalled事件API实现这个需求,该API会在扩展完成安装、更新、浏览器版本更新时触发回调,你可以通过回调参数判断是否为扩展更新场景,进而触发更新日志的展示逻辑。
示例代码(Chromium系浏览器 Manifest V3)
// 在扩展的background service worker中添加监听逻辑 chrome.runtime.onInstalled.addListener(async (details) => { // 仅在扩展更新场景执行后续逻辑 if (details.reason === 'update') { // 可获取更新前的版本号,支持做不同版本间的差异化更新日志展示 const preVersion = details.previousVersion; const currentVersion = chrome.runtime.getManifest().version; // 方案1:打开独立标签页展示完整更新日志 chrome.tabs.create({ url: chrome.runtime.getURL('release-note.html') }); // 方案2:弹出小尺寸悬浮窗口展示更新日志 // chrome.windows.create({ // url: chrome.runtime.getURL('release-note.html'), // type: 'popup', // width: 600, // height: 400 // }); } });
注意:如果是Manifest V2版本的扩展,只需要把上述逻辑放到background page中即可,API调用规则完全一致;Firefox等支持WebExtension标准的浏览器,将命名空间chrome替换为browser即可正常使用。
低打扰备选方案
如果你不想更新后立刻弹窗打扰用户,可以自己做版本对比控制:
- 每次扩展启动/用户打开扩展popup时,读取
chrome.storage.local中存储的上一次用户访问的扩展版本号 - 和当前扩展版本号
chrome.runtime.getManifest().version做对比,如果版本号更高则展示更新日志 - 用户查看完更新日志后,更新存储的版本号为当前版本即可
内容的提问来源于stack exchange,提问作者qiufeng
相关产品推荐
相关产品推荐

