火狐社区

标题: 如何开发 WebExtensions 扩展 [打印本页]

作者: xuyuehang    时间: 2017-10-12 11:41
标题: 如何开发 WebExtensions 扩展
本帖最后由 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 新手教程、相关概念
MDN: 关于 manifest.json 的参考文档
MDN: WebExtensions API 文档

其他开发者在 Github 上收集的关于 WebExtensions 开发资源整合:
awesome-WebExtensions
awesome-browser-extensions-and-apps

作者: 310971373    时间: 2017-10-13 09:17
沙发~~扩展开发杠杠的
作者: 花生PeA    时间: 2017-10-13 17:24
这东西看着真眼熟啊......
作者: FlamingFox    时间: 2017-10-13 19:57
提个建议,如果以后在进行WebExtension开发时,应该让开发者在最后打包扩展的时候,在其扩展上加上Web字样,以区别原有的扩展名称。因为是针对跨浏览器应用的,这些带有Web字样的新扩展可以在火狐扩展应用市场上能够一眼能看到,然后方便用户下载试用。不知这个建议是否有用。
作者: liujun2015    时间: 2017-10-18 06:11
扛扛扛
作者: liujun2015    时间: 2017-10-18 06:11
扛扛扛
作者: liujun2015    时间: 2017-10-18 06:11
扛扛扛
作者: xuyuehang    时间: 2017-10-18 15:19
花生PeA 发表于 2017-10-13 17:24
这东西看着真眼熟啊......

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

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

如果在扩展名中不加webext的话,能否在新扩展的命名上,如ScrapBook这个扩展,据开发者称,以后的WebExtension名为:WebScrapBook。后面的扩展名依旧保持原样,这样的扩展命名是否有用呢?
作者: ForeverGLory    时间: 2017-10-21 07:00
已开发两个插件,划词窗 https://addons.mozilla.org/firefox/addon/selection-popup/ 求推荐,求指导
作者: 花生PeA    时间: 2017-10-24 17:05
xuyuehang 发表于 2017-10-18 15:19
本来就是你写的那个


啊呀,不要暴露我,我要深藏功与名
作者: yingliu    时间: 2017-10-31 14:00
ForeverGLory 发表于 2017-10-21 07:00
已开发两个插件,划词窗 https://addons.mozilla.org/firefox/addon/selection-popup/ 求推荐,求指导 ...

棒!先收录了,以后推荐!
作者: 花生PeA    时间: 2017-12-19 16:05
建议在WebExtensions相关资料章节部分添加:
使用 Native Messaging 来开发 WebExtensions
http://mozilla.com.cn/thread-396967-1-1.html


作者: 水木桶    时间: 2018-11-22 20:38
厉害,有空写一个
作者: 加菲猫8    时间: 2019-12-25 17:41
这边用WebExtensions 启动exe。exe的默认加载dll的搜索路径被改了当前exe路径不是第一位了,为什么




欢迎光临 火狐社区 (http://mozilla.com.cn/) Powered by Discuz! X3.1