You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在扩展更新后自动展示更新信息或跳转指定页面?

实现扩展更新后自动通知用户的可行方案

我之前也做过类似的需求,刚好可以给你分享几个亲测有效的方案,很多主流扩展都是这么实现的:

1. 监听浏览器的onInstalled更新事件

这是目前最可靠的方式,现代浏览器(Chrome、Firefox等)都支持这个API。当扩展完成更新后,浏览器会触发chrome.runtime.onInstalled事件,你可以通过判断事件的reason参数来识别是否是更新操作,然后直接触发通知或打开更新详情页。

具体实现步骤:

  • 在你的扩展后台脚本(比如background.js)中添加监听代码:
    chrome.runtime.onInstalled.addListener((details) => {
      // 判断是否是更新触发的事件
      if (details.reason === "update") {
        // 方案一:弹出桌面通知提醒用户
        chrome.notifications.create({
          type: "basic",
          iconUrl: "/icons/icon-48.png", // 替换成你的扩展图标路径
          title: "你的扩展已更新!",
          message: "点击查看本次更新的新功能和优化~"
        });
    
        // 方案二:直接打开扩展内置的更新详情页
        chrome.tabs.create({ url: "/update-notes.html" });
      }
    });
    
  • 在manifest.json中声明所需权限:
    {
      "permissions": ["notifications", "tabs"],
      "background": {
        "service_worker": "background.js" // 或者"scripts": ["background.js"],取决于浏览器版本
      }
      // 其他配置...
    }
    

2. 关于update_info_url的状态

你提到的update_info_url确实已经被现代浏览器弃用了,现在主流浏览器都是通过官方扩展商店的内置更新机制来推送更新,不再需要手动配置这个属性,所以不用再纠结它的使用了。

3. 进阶优化:动态拉取更新日志

如果不想每次更新都修改扩展内的HTML文件,可以把更新日志托管在远程服务器上,在onInstalled事件中请求接口获取最新的更新内容,然后通过弹窗或新标签页展示给用户。比如:

chrome.runtime.onInstalled.addListener(async (details) => {
  if (details.reason === "update") {
    try {
      const response = await fetch("你的更新日志接口地址");
      const updateNotes = await response.json();
      // 根据返回的内容构建通知或页面内容
      chrome.notifications.create({
        type: "basic",
        iconUrl: "/icons/icon-48.png",
        title: "扩展已更新至v" + updateNotes.version,
        message: updateNotes.summary
      });
    } catch (err) {
      console.error("获取更新日志失败:", err);
    }
  }
});

这个方案完全可以满足你的需求,我见过很多扩展(比如一些生产力工具、广告拦截器)都是这么实现更新后自动通知的,稳定性很高。

内容的提问来源于stack exchange,提问作者throwawayqueston213124

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:05:17