Mozilla

火狐社区

登录    注册

QQ互联

如何开发 WebExtensions 扩展

xuyuehang 千年狐妖 发表于 2017-10-12 11:41:34 | 只看该作者    关闭 [复制链接] 打印 上一主题 下一主题
16 88619
跳转到指定楼层
本帖最后由 yingliu 于 2017-10-24 16:37 编辑



WebExtensions 简单来说就是一个用于开发各个浏览器附加组件的技术,开发者仅需要掌握 HTML、CSS、JavaScript 即可使用 WebExtensions 开发浏览器附件组件,Firefox 将在 57 的时候将只支持 WebExtensions 扩展,其他旧式类型的扩展(基于XUL、XPCOM、Add-on SDK)将全部取消支持,若你有旧式扩展需要迁移,可以阅读这篇文章

你可以在 MDN 中的 WebExtensions 主页找到关于 WebExtensions 的更多信息。

开发 WebExtensions
调试工具
通常建议使用 Developer Edition 版的 Firefox 进行 WebExtensions 的测试与开发,它允许你安装未签名的 .xpi (Firefox扩展程序)文件。
关于 .xpi 文件签名说明

Mozilla 官方维护了一个用于调试 WebExtensions 的 CLI 工具,可以实现一些方便快捷的功能(比如 WebExtensions 热加载):mozilla/web-ext

遇到问题
当你在开发过程中遇到一些意料之外的问题,你可以尝试在 Chrome 上运行你的 WebExtentions 代码 ,来对比二者的不同。若发现为 Firefox 实现的 bug,可以到 Bugzilla 上向 Firefox 进行反馈。

WebExtensions 还在不断发展中,若你有关于 WebExtensions 的想法,可以在 dev-addons 邮件列表或 IRC 上的 #webextensions 与 Mozilla 联系。

跨平台开发
使用 WebExtensions 开发跨平台的浏览器扩展程序十分容易,因为 WebExtension API 就是专为跨浏览器兼容而设计的。Firefox 的扩展程序 API(WebExtensions)与 Chrome 所支持的 extension API 有很大程度的兼容,Mozilla 官方甚至提供了一个 polyfill 来帮助开发者完成跨平台开发。

若你想从 Chrome 中移植扩展到 Firefox,可以阅读:
从 Google Chrome 移植
如何将Chrome Extension迁移到Firefox上

WebExtensions相关资料
在 MDN 上提供了关于 WebExtensions 方面的文档,不仅仅是 Firefox,你可以在大部分 API 中看详细的浏览器兼容标注。一些 API 仍在实现过程中。
MDN: WebExtensions 新手教程、相关概念

其他开发者在 Github 上收集的关于 WebExtensions 开发资源整合:
awesome-WebExtensions
awesome-browser-extensions-and-apps
310971373 狐狸精
沙发
发表于 2017-10-13 09:17:10 | 只看该作者
沙发~~扩展开发杠杠的
花生PeA 小狐狸
板凳
发表于 2017-10-13 17:24:19 | 只看该作者
这东西看着真眼熟啊......
FlamingFox 狐狸精
地板
发表于 2017-10-13 19:57:56 | 只看该作者
提个建议,如果以后在进行WebExtension开发时,应该让开发者在最后打包扩展的时候,在其扩展上加上Web字样,以区别原有的扩展名称。因为是针对跨浏览器应用的,这些带有Web字样的新扩展可以在火狐扩展应用市场上能够一眼能看到,然后方便用户下载试用。不知这个建议是否有用。

点评

还有 WE  发表于 2018-1-12 01:00
liujun2015 社区新人
5#
发表于 2017-10-18 06:11:00 | 只看该作者
扛扛扛
liujun2015 社区新人
6#
发表于 2017-10-18 06:11:11 | 只看该作者
扛扛扛
liujun2015 社区新人
7#
发表于 2017-10-18 06:11:12 | 只看该作者
扛扛扛
xuyuehang 千年狐妖
8#
发表于 2017-10-18 15:19:43 | 只看该作者
花生PeA 发表于 2017-10-13 17:24
这东西看着真眼熟啊......

本来就是你写的那个
xuyuehang 千年狐妖
9#
发表于 2017-10-18 15:20:53 | 只看该作者
FlamingFox 发表于 2017-10-13 19:57
提个建议,如果以后在进行WebExtension开发时,应该让开发者在最后打包扩展的时候,在其扩展上加上Web字样 ...

一些新扩展是这样区分的,不过全凭自愿,而且以后全面变成webextension后,如果扩展名再带上webext就多此一举了
FlamingFox 狐狸精
10#
发表于 2017-10-18 19:05:38 | 只看该作者
xuyuehang 发表于 2017-10-18 15:20
一些新扩展是这样区分的,不过全凭自愿,而且以后全面变成webextension后,如果扩展名再带上webext就多此 ...

如果在扩展名中不加webext的话,能否在新扩展的命名上,如ScrapBook这个扩展,据开发者称,以后的WebExtension名为:WebScrapBook。后面的扩展名依旧保持原样,这样的扩展命名是否有用呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表