请选择 进入手机版 | 继续访问电脑版
Mozilla

火狐社区

登录    注册

用新浪微博连接 QQ互联

如何开发 WebExtension 扩展

xuyuehang Mozilla员工 发表于 2017-10-12 11:41:34 | 显示全部楼层 [复制链接]
9 798
本帖最后由 xuyuehang 于 2017-10-12 16:40 编辑

sp171012_163938.png
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 狐狸精
发表于 7 天前 | 显示全部楼层
沙发~~扩展开发杠杠的
花生PeA 狐狸仔
发表于 7 天前 | 显示全部楼层
这东西看着真眼熟啊......
Web开发程序员一枚,目前方向是全栈~~
FlamingFox 小狐狸
发表于 7 天前 | 显示全部楼层
提个建议,如果以后在进行WebExtension开发时,应该让开发者在最后打包扩展的时候,在其扩展上加上Web字样,以区别原有的扩展名称。因为是针对跨浏览器应用的,这些带有Web字样的新扩展可以在火狐扩展应用市场上能够一眼能看到,然后方便用户下载试用。不知这个建议是否有用。
liujun2015 社区新人
发表于 前天 06:11 | 显示全部楼层
扛扛扛
liujun2015 社区新人
发表于 前天 06:11 | 显示全部楼层
扛扛扛
liujun2015 社区新人
发表于 前天 06:11 | 显示全部楼层
扛扛扛
xuyuehang Mozilla员工
发表于 前天 15:19 | 显示全部楼层
花生PeA 发表于 2017-10-13 17:24
这东西看着真眼熟啊......

本来就是你写的那个
xuyuehang Mozilla员工
发表于 前天 15:20 | 显示全部楼层
FlamingFox 发表于 2017-10-13 19:57
提个建议,如果以后在进行WebExtension开发时,应该让开发者在最后打包扩展的时候,在其扩展上加上Web字样 ...

一些新扩展是这样区分的,不过全凭自愿,而且以后全面变成webextension后,如果扩展名再带上webext就多此一举了
FlamingFox 小狐狸
发表于 前天 19:05 | 显示全部楼层
xuyuehang 发表于 2017-10-18 15:20
一些新扩展是这样区分的,不过全凭自愿,而且以后全面变成webextension后,如果扩展名再带上webext就多此 ...

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

本版积分规则

发新帖
论坛更多 »
热门活动更多 »
火狐微信
快速回复 返回顶部 返回列表