1 概述

Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档。

2 环境

  • Chrome 88.0.4324.96
  • Chromium 87.0.4280.141
  • Brave 1.19.84
  • FireFox 85.0
  • WebStorm 2020.3.2
  • Manifest V3

3 开发环境准备

开发扩展建议使用WebStorm,推荐WebStorm的原因是能够补全,在设置中的Libraries中可以下载chrome的库,这样就能够补全了:

另一个建议使用的是VSCode,但是笔者目前没有找到让VSCode补全的方式,希望知道的可以在评论指出补充一下。

当然其实扩展开发并没有规定使用哪一个IDE,常用的Web开发IDE比如HBuilder也是可以的,看个人喜好了。

4 创建manifest.json

首先创建一个空白文件夹:

mkdir FirstExtension
cd FirstExtension

接着创建一个叫manifest.json的文件,直接在WebStorm中创建即可,文件内容如下:

{"name": "First Extension","description": "This is my first extension","version": "1.0","manifest_version": 3
}

打开浏览器进入管理扩展程序,并开启开发者模式,选择Load unpacked,打开刚才创建的FirstExtension文件夹:

这样就可以看到扩展了。

事实上最简单的扩展只需要一个manifest.json,来描述扩展最基本的一些属性以及行为,因此这样就算完成HelloWorld了。

5 添加弹出界面

现在扩展什么界面也没有,现在可以尝试着给扩展添加一个点击就弹出的界面,首先修改manifest.json,添加action

{"name": "First Extension","description": "This is my first extension","version": "1.0","manifest_version": 3,"action": {"default_popup": "popup.html"}
}

在与manifest.json同级目录下创建popup.html文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>Hello World!</h1>
</body>
</html>

这样点击扩展就会弹出对应文字了:

6 添加图标

manifest.json中添加icons字段:

{"name": "First Extension","description": "This is my first extension","version": "1.0","manifest_version": 3,"action": {"default_popup": "popup.html"},"icons": {"16": "icons/16.png","32": "icons/32.png","48": "icons/48.png","128": "icons/128.png"}
}

图标文件可以从文末的源码处获取,重新加载后就可以看到扩展的图标改变了。

图标一共有四个,16*16是扩展页面中显示的图标:

32*32是可选的,为了防止从48*48的大小中缩小造成失真,48*48是在扩展管理页面中显示的,例如:

128*128Chrome Web Store中显示的。

7 发布

最后一步是发布,扩展有两种安装方式,一种是通过本地安装,一种是通过Chrome Web Store安装,使用后一种方式的话,需要注册成为Chrome网上应用开发者:

这里为了方便就本地打包发布了,在插件管理页面选择Pack extension

选择包含了manifest.json的文件夹,在这里就是刚才创建的FirstExtension

点击打包后,会出现两个文件:

一个是crx,就是扩展的打包文件,一个是pem,创建新版本的扩展时需要使用。

浏览器中拖拽crx文件就可以安装了,一般来说Chrome/Chromium/Brave因为基于相同内核应该都不会出现问题,至于FireFox,可以参考一下文末的附录。

8 源码

  • Github
  • 码云
  • GitCode

9 附录:FireFox

FireFox目前最新版本(85.0)的扩展目前不支持Manifest V3,因此如果需要开发FireFox扩展,需要使用Manifest V2版本,也就是:

"manifest_version": 2

当然还有一些字段上的区别,具体可以参考这里的文档。

另外笔者测试了一下FireFox安装这个Demo扩展好像不能直接拖拽crx文件,需要打开一个叫about:debugging的链接,在设置中选择Load Temporary Add-on:

选择manifest.json文件即可安装。

Chrome扩展开发基础教程(附HelloWorld)相关推荐

  1. AndoridSQLite数据库开发基础教程(5)

    AndoridSQLite数据库开发基础教程(5) 创建SQLite数据库 使用SQLiteManager创建数据库的操作步骤如下: (1)双击SQLiteManager工具,弹出SQliteMana ...

  2. java web 润乾报表教程_润乾报表开发 基础教程.ppt

    润乾报表开发 --基础教程 主格和附属格 单元格进行扩展的过程中,缺省情况下,相对于其右(下)边的单元格而言,扩展格是主动复制的,被称为其它格(其右/下的格)的主格,而其右(下)的单元格是被动跟随复制 ...

  3. [AHK]面向对象开发基础教程

    AHK中的面向对象开发基础教程 本文将讲解AutoHotkey中如何使用类Class,即面向对象编程的一些基础知识: 在编程中使用类叫面向对象编程(Object Oriented Programmin ...

  4. iphone3开发基础教程

    学习ios 要两本书 1.Objective-C基础教程 下载地址 : http://www.kuaipan.cn/file/id_28743136620607856.htm 2.iphone3开发基 ...

  5. 根据iphone3/ios5开发基础教程-录制ios视频基础教程-视频下载专辑/反馈

    根据iphone3/ios5开发基础教程-录制ios视频基础教程-视频下载专辑/反馈 原文地址:http://www.lwxshow.com/forum-2-1.html 大家觉得有必要下载高清版本的 ...

  6. chrome扩展开发介绍和右键开发

    chrome扩展开发 chrome扩展中文文档官网 Chrome浏览器在全球都拥有可观的忠实用户,抛去其占据了浏览器市场的霸主地位不说,其具备了众多的优点,如良好的用户体验,简单的开发规范等等. 归纳 ...

  7. SharePoint Framework开发基础教程

    SharePoint Framework开发基础教程-170人已学习 课程介绍         SharePoint Framework是微软推出的针对SharePoint的前端开发框架,本课程将详细 ...

  8. Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表

    Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表 除了以上提到的图表外,OxyPlot组件还包含了6种类型的其它图表,分别为等高线图.箱线图.饼图.热图.散点图和散点误差图,如图 ...

  9. Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型

    Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型 OxyPlot组件中支持5种类型的金融图表,它们分别为销量图.高低图.股票K线图.股票走势图和旧式股票图,如图1.20~1. ...

最新文章

  1. js 选择 checkbox
  2. linux高通平台代码,高通linux系统初始化
  3. python 单继承的实现
  4. 滚动条的值如何赋值_如何给Word文本框添加滚动条?史上最详细步骤
  5. Spark广播变量实现原理及基础编程
  6. [蓝桥杯][2016年第七届真题]密码脱落(记忆化搜索)
  7. Java集合:Map集合
  8. foreach lambda写法_Java8新特性之forEach+Lambda 表达式遍历Map和List
  9. 根据一个数字日期,判断这个日期是这一年的第几天
  10. Terracotta Express Model 和 Terracotta Customized Model
  11. 3.MySQL索引(一)介绍索引
  12. 查看字符串的编码chardet
  13. 可以玩java游戏的软件_手机上能玩电脑游戏的软件有哪些 用什么软件可以在手机上玩电脑游戏...
  14. RSA算法和SM2算法对比
  15. JAVA流-File文件
  16. matlab两矩阵乘除,MATLAB矩阵乘法
  17. 玩转oled屏(基于SPI协议)
  18. React Fullpage
  19. 关于构建与优化数据仓库架构与模型设计
  20. HR 面,我们该怎么办

热门文章

  1. C语言:强制类型转换
  2. 预约到店软件开发定制搭建详细方案
  3. 新媒体运营教程:要想把人留在直播间,人气直播间必备的8个技巧
  4. Linux中top命令参数详解、常用快捷键
  5. 计算机毕业设计Java小区生活服务平台的设计与实现(源码+系统+mysql数据库+Lw文档)
  6. 这平原是我走不出去的大山
  7. request模块(转载)
  8. python3 爬取汽车之家所有车型数据操作步骤(更新版)
  9. Shift + Delete删除的文件如何恢复?
  10. 常用计算机存储器类型,计算机常用的辅存储器有哪些