浏览器插件 Focus
· 6 min read
摸鱼的时候,无意间的看到了 chrome developer 的文档,其中有一个东西特别吸引我:
DeclarativeNetRequest:Intercept, block, or modify network requests.
因为最近下班之后,有件事总是困扰我。下班我会在地铁上安排好今晚任务,例如争取通关《王国之泪》,但现实往往是被 B 站吸引一直在刷 lol、cod 的视频,直到夜深,一天的大好时光就结束了,switch 充满电又蒙上灰。
所以我想要是能给它屏蔽就好了,这样能提醒我去做自己该做的事,不被多巴胺牵着鼻子。
直到看到了这个 api,我觉得这是一个尝试的契机。
框架
摸鱼时间有限,也为了节约时间,最好的办法当然是找一个框架来快速开发。最好是成熟一点、高 star 的,经过搜索发现plasmo挺符合要求的。
按照惯例,找到文档的 get start 就算是入门了。意外发现文档齐全,步骤清晰,说明这事成的概率很大。
按照文档搭建了项目之后,需要快速的预览一遍文档内容,熟悉一下框架。
根据文档,总结框架使用如下:
- 不需要配置 manifest.json,plasmo 会自动生成,除了权限需要再 package.json 中指定之外。
- 插件关键组件基本上就是一个文件夹的事,例如
background
,content
,popup
,options等
- 可以使用
react
或者vue
,以及对应的生态。
到这里就够了,能用 react
和vue
解决,就已经排除了 90%的问题。
除了 plasmo 框架之外,还需要简单的了解一下 chrome extension 的 api。 主要的就是两点: