一些开发 Chrome 扩展的槽点和 发布到 Chrome 扩展商店的要点

2019-08-27 16:34:30 +08:00
 gzlock

前情提要:第一次开发 Chrome 扩展,需要宽泛网域权限和 Cookies 切换功能,商店链接 | 介绍扩展的帖子 | 源码

ps:

印象最深刻的两个坑:

  1. chrome.cookies.set

    当浏览器第一次启动,我的扩展将用户保存的 cookies 回填到 Chrome 必须要用到的一个接口

    当需要一次填入很多 cookies 的时候,这个接口就丢链子了

    表现在每次冷启动浏览器后极大几率只会填入 6 个网站的 cookies,清空浏览器 cookies 后禁用再启用扩展反而可以成功回填所有 cookies

    后来用async 的 queue队列解决了,代码在这

    ~~队列 自己写是不可能的,这辈子都不可能自己写的亚子~~

  2. chrome.contextMenus,网页右键菜单,文档

    没有原生的 event 通知扩展在显示右键菜单前更新网页菜单

    这样造成的问题是,只有两个方法通知扩展更新网页菜单

    • 使用 content-script,将代码注入网页绑定菜单事件,通知扩展更新菜单内容,相关的问答

    (我很抗拒注入代码,因为网页原本的内容可能会导致注入的代码失效,存在不确定性)

    • 我正在使用的方法,使用 chrome.tabs 的一些 event 去更新菜单项目,代码在这

    这个方法有一个问题:一个 tab 从创建到关闭,用户可能都不会去使用右键菜单,这就很浪费了

    所以 Chrome 应该设立一个原生的 event 例如 chrome.contextMenus.onBeforeDisplay 之类的,通知扩展更新菜单项目就完美了

上架 Chrome 扩展商店的一些要点

  1. 涉及敏感数据的权限(例如 cookies,宽泛网域),扩展要带隐私说明,并且要在安装扩展后在用户使用扩展前让用户看到

    • 曾经只在商店说明放上了 github 仓库的隐私说明,通过审核后一天被下架
    • 然后想办法在扩展的 options,popup 页面展示隐私说明入口,同意隐私说明后才能使用扩展,通过审核
  2. 使用宽泛网域权限的扩展,审核时间会很长,长达几天。

    所以应该所有功能都测试成功后再上架,不然看到不完善的扩展版本挂在商店上会很痛苦。

  3. 针对宽泛网域权限,有个替代功能叫 optional_permissions,不过每个新域名都要弹一次询问,这就很烦人了

1577 次点击
所在节点    分享发现
4 条回复
gzlock
2019-08-27 16:40:07 +08:00
@livid markdown 的删除线格式失效了
mara1
2019-08-27 19:51:22 +08:00
上架扩展,审核要多久,我上周放上去了个,到今天 4 个工作日了还是待审核
gzlock
2019-08-27 20:33:13 +08:00
@mara1 #2 可以配合 github 项目的最后 commit 时间来观察,这次我这个扩展的审核时间花了 6 天
Livid
2019-08-28 02:06:18 +08:00
@gzlock 我们应该是从来没有支持过 strikethrough

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/595581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX