跳到主要内容
2026年7月31日 · 手册

手册:构建浏览器扩展

本文描述的是发布时的产品情况。有关当前功能,请参阅 AI 构建器智能体团队

手册:构建浏览器扩展

Priya——你上周问我,你正在构建的降价监控工具是不是应该「保险起见」每分钟就轮询一次商品页面。在你把它写进去之前,让我给你完整梳理一遍,因为轮询间隔其实是这里面最小的一个决定,先把整体结构定对,能帮你在上线前省下一两轮审核。

先从提示词本身说起。你告诉我「一个能监控这个页面并在降价时通知我的扩展」,这想法不错,但还算不上一个规格说明——构建器需要知道它何时触发,而不仅仅是它做什么。你的监控工具是三种触发方式中的第三种,虽然你用不到另外两种,但了解它们仍然有意义,因为触发方式决定了权限,而权限又决定了你的审核周期。

  • 点击触发是最简单的一种:一个弹出窗口,当有人点击工具栏图标时针对当前页面运行一次——比如「把这个页面上的所有价格提取成一个列表」。
  • 常驻内容脚本会在你指定的 URL 模式上自动运行——适合类似「在某个域名下的每个页面上高亮竞品名称」这样的场景,但你需要明确指定模式,因为「在我们的内部网站上」这种描述会被理解得比你想的更窄。
  • 你的情况属于第三种:一个后台监控工具,无论标签页是否打开都会保持状态,运行在 MV3 下的 service worker 上,当出现变化时在图标上打上角标。

这也是唯一一种构建器会向你反问澄清的触发方式,而且它确实会问——因为轮询频率是一个真正的权衡取舍,而不是走个形式。

这就说回你「每分钟一次」的直觉了。前段时间我也遇到过和你几乎一样的构建需求:监控一个页面,价格变化时在图标上打角标,第一版每 60 秒轮询一次。本地一个人测试时没问题。但一旦装的人多了起来,就等于在毫无意义地狂轰一个商品页面,因为普通零售商品的价格一天也就变动那么几次。在提示词里告诉构建器「每 30 分钟检查一次」。这不是一种妥协,而是更实事求是的做法——没人需要浏览器扩展给出秒级提醒,等以后不用向审核员解释你的扩展为什么一天要「打电话回家」1440 次时,你会庆幸自己这么做了。

那些你无需操心的部分

你提到对 manifest 感到紧张——不用担心,这恰恰是你真正不需要动手的部分。两大应用商店现在都要求 Manifest V3;MV2 已不再接受新的上架申请,Chrome 也在积极淘汰仍在线上的 MV2 扩展。MV3 下最主要的变化是,你的后台逻辑运行为一个 service worker,而不是常驻的后台页面——它由事件触发启动,浏览器可能在事件之间将其终止,状态需要通过 chrome.storage 来保存,而不能只存在于变量里。这正是构建器默认就能正确处理的那种生命周期细节。除非你特意去找,否则你根本不会看到 manifest 文件。

你真正应该关注的是权限,因为这才是决定审核速度的因素,而不是代码本身。你的监控功能需要 alarms 用于轮询,可能还需要 storage 用于记住上一次的价格——它不需要 tabs <all_urls>。如果你因为“以后可能会扩展到任意网站”就要求“未来能在任何网站上运行”的能力,构建器会照此构建,结果你会为一个尚不存在的功能申请广泛的站点访问权限。这是安装弹窗中最吓人的一行——“读取和更改你访问的所有网站上的数据”——也正是这一项会把自动审核变成人工审核。只描述它现在实际做的事,以后真的需要再扩大范围。

在你宣布完工之前,还有两件事值得花三十秒关注一下:弹窗界面和图标。

  • 弹窗界面——一个默认的设置页面,光秃秃的复选框,毫无层次感,是导致一星差评的常见原因,而这些差评往往和扩展本身能不能用毫无关系。你的设置项虽然不多(网址、也许还有间隔时间),但它看起来应该像一个真正的产品,而不是一份表单。
  • 图标——确保图标在 Chrome 的全部四种尺寸下都经过检查(16、32、48、128 像素,Firefox 的规格略有不同),因为一个在 128 像素下清晰锐利的图标,缩小到 16 像素可能就糊成一团了,而这恰恰是它在拥挤的工具栏里大部分时间所处的位置。

在你碰任何一家商店之前

要进行真实测试,而不只是在聊天预览里看看。构建产出的是一个可以真正加载的扩展,所以打开 chrome://extensions,开启开发者模式,选择“加载已解压的扩展程序”,然后在你真正关心的产品页面上运行它——而不是模拟版本。我会specifically 手动检查两件事:安装权限提示是否与你申请的内容相符,以及当内容脚本遇到它不是为之构建的页面时会发生什么——是静默失败还是抛出可见的错误?这两项检查都不到一分钟,而且都是那种一看就明显、不看就完全隐形的 缺陷。

真正准备发布时,你需要通过自己在两家商店的开发者账号来完成——上架信息由你自己拥有,本平台不会替你管理它。我要提醒你的是,这两家商店的流程完全不对等,所以不要在规划发布日期时假设它们是一样的。

商店提交流程
Chrome自动填充上架信息——标题、描述、分类,以及审核实际会看的权限说明文字,这些内容是根据代码实际的行为生成的,而不是单独手写的,这一点很重要,因为权限说明与实际行为不符本身就是一个常见的拒审理由。
Firefox基本上无需操心;Mozilla 的流程更轻量,提交后基本直接通过。

在你完成构建后生成的上架素材包,还会附带从你的扩展实际运行中截取的截图(而不是效果图)、上架文案,以及根据真实代码核对过的隐私实践问答。最后这一点对于会与外部页面通信的扩展来说尤为重要:Chrome 的隐私问卷会直接问一些是非题,比如「是否收集数据」——如果你的监控工具正在轮询并存储价格数据,却回答「否」,这种小小的不诚实往往会在上线后被下架,而不仅仅是在上线前被拒。让答案自动与代码实际行为进行核对,就帮你补上了这个漏洞。

具体到你的发布日期:
商店典型审核时长
Firefox几个小时,有时不到一小时
Chrome一两天,赶上不顺的时候可能接近两天

像你这样带后台常驻功能的扩展,比一个简单的点击触发型扩展更可能落入更慢的人工审核队列。我们俩谁都没法左右这个队列。请按照 Chrome 的时间线来规划你的发布公告,而不是 Firefox 的,也不要把任何安排定在提交当天。

最后一件事,因为我了解你——你大概已经在琢磨上线后要加上「跨设备同步我的监控列表」和「追踪历史价格走势」了。这没问题,但要知道,这两项功能各自都需要一个新权限,而新权限可能意味着比你刚经历的这次更慢的审核。如果你确定想要更完整的版本,真的不如现在就在提示词里一次性写清楚、接受一次较慢的审核,也好过日后一点一点零散地追加权限。如果你还没想好,那就先发布现在这个版本——一个范围精简的监控工具能很快通过审核,让你获得真实用户的使用,而眼下真实的使用数据,比一份还躺在 Chrome 审核队列里的更长功能清单更有价值。以后你随时可以再申请更多权限;但一旦这次发布因为你其实还用不到的功能而卡在人工审核里,就再也补不回来了。

手册
分享XLinkedInFacebookRedditQuoraWhatsAppTelegram邮箱
← 所有文章