什么是Chrome拓展程序
Chrome拓展程序是一个包含着HTML、JavaScript、Css文档,以及图片等各种其他静态资源的压缩包,它使用Web主流技术进行开发,可以串接浏览器所提供的API,以实现增强浏览器功能的目的。
Chrome拓展程序开发关注点
- 单一目标原则: 拓展程序可以包含很多组件和功能,但应该只为了服务于一个目的,这是为了保持Chrome用户体验的良好质量。
- 用户界面简洁且意图明确: 交互界面可以是一个简单的图标,或是一个模态框。
Chrome拓展程序可以实现什么功能
Chrome拓展程序可以利用 Web API 和 Chrome Extension API 来完成不同的任务。
设计界面
通过使用浏览器拓展程序,我们可以实现对浏览器的界面进行一些改造,其中包括从Chrome工具栏、侧边栏、上下文菜单等触发的弹出式窗口
- 侧边栏: 使用
chrome.sidePanelAPI可将内容托管在浏览器侧边栏中的网页主要内容旁边 - 操作: 控制拓展程序图标在工具栏中的显示
- 菜单: 向Google Chrome的上下文菜单添加项
控制浏览器
借助Chrome的拓展程序API,我们可以改变浏览器的工作方式
- 覆盖Chrome网页和设置
- 对用户身份进行校验
- 拓展开发者工具
- 管理拓展程序
- 显示通知
- 管理历史记录
- 控制标签页和窗口
- 添加键盘快捷键
- 提供建议
- 更新Chrome设置
- 管理下载内容
- 使用书签和阅读清单
控制网络
动态更改网页的内容和行为。您可以通过注入脚本、拦截网络请求以及使用Web API 与网页进行交互,来控制和修改Web。
- 注入JavaScript和Css
- 访问活动标签页
- 控制网络请求
- 录音和屏幕截图
- 修改网站设置
Chrome拓展程序主要术语名词
- 清单:拓展程序的清单是唯一且必须具有特定文件名的必需文件:manifest.json, 该文件还必须位于相应拓展程序的根目录下。该清单会记录重要元数据、定义资源、声明权限以及标识在后台和网页中运行的文件。
- Service Work:Service Worker 在后台运行并处理浏览器事件,例如移除书签或关闭标签页。它们无权访问DOM,但如果要操作DOM,就可以通过结合 Offscreen API,来在隐藏的文档中使用DOM API。
- 内容脚本:内容脚本是在网页环境中运行的文件。使用标准 Document对象模型结合使用,它们能够读取浏览器访问的网页的详情信息,对它们进行更改,并将信息传递给其父级拓展程序。
- 工具栏操作: 在用户点击拓展程序工具栏图标或使用Action API显示弹出式窗口时,执行代码。(我们常见到的popup.html)
- 侧边面板:在浏览器的侧边栏中显示自定义界面。
- DeclarativeNetRequest: 拦截、屏蔽或修改网络请求。
Chrome拓展程序是如何工作的
在之前《浏览器进程架构》中,我们有提到目前的浏览器进程架构中存在插件进程,拓展程序在拓展进程中通过IPC机制来进行进程间的通信。那么将浏览器拓展程序中涉及到的功能进行划分,后即为,如下图所示
结语
以上就是浏览器拓展程序开发的一些前置概念,方便给大家提供一个浏览器拓展程序开发的一个敲门砖。
祝诸君武运昌隆