firefox - 为多个 SDK 版本开发 Firefox 插件

标签 firefox firefox-addon firefox-addon-sdk

我看到每个cfx tools始终使用自己的 minVersion 和 maxVersion 生成 xpi。但是,这些仅限于 SDK 兼容的版本,例如SDK 1.14 仅适用于 FF 21 - 25.0a1,SDK 1.17 仅适用于 FF 26 - 30。我的问题是:

  • 每次新版本出来时,我是否需要用新的 SDK 打包我的扩展?
  • 将来如何维护和更新我的扩展程序?是否 Addon Developer Hub提供一种为多个 SDK 版本提交相同扩展的方法?我试图环顾四周,但找不到提交多个版本的方法。
    我想将 FF 21 作为最低版本,因为这是内置 SDK 的版本。我的扩展目前与 SDK 1.14 和 SDK 1.17 一起编译,只进行了外观(语法)调整。
  • 最佳答案

    开发者中心可让您选择插件兼容的 Firefox 版本。这只是 setting the minVersion and maxVersion in the install.rdf 的 GUI .只要您不使用需要 Firefox 22+ 的模块或方法,您使用哪个版本的 SDK 都无关紧要,因为正在运行的 SDK 版本由用户浏览器上的版本决定。

    很难找到特定模块的兼容性(您可以随时访问特定模块的文档并查看编辑历史记录),但请查看 SDK API Lifecycle了解可以使用哪些模块。一些值得注意的例子是:

  • new UI modules需要 FF29 并且它们的某些功能需要 FF30。
  • widget module从 FF 29 起已弃用,由上述内容取代。

  • 处理上述情况以实现向后兼容性的一种方法是执行以下操作:
    const { version } = require('sdk/system/xul-app');
    if (version < 29) var widget = require("sdk/widget").Widget({...});
    else var button = require("sdk/ui/button/action")({...});
    

    所以,要清楚:
  • 除非您想使用新模块,否则您使用哪个版本的 SDK 并不重要。
  • 不,您不应该制作多个版本的附加组件。如果您想为新浏览器使用新模块,请按照上面的代码示例进行操作。
  • 关于firefox - 为多个 SDK 版本开发 Firefox 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26858531/

    相关文章:

    firefox-addon - 从内容脚本获取 Firefox 插件版本

    firefox - 在 Windows 7 中使用 MozRepl 对 Firefox 进行编程

    javascript - jQuery-ui 不在 Firefox 插件中设置面板样式

    css - 浏览器无法将相对单位(百分比)应用到由 fr 设置的空间

    javascript - 用于清除 Silverlight 应用程序存储的脚本方法?

    javascript - 避免覆盖UI的一些方法(可能类似于firefox中的附加组件)

    javascript - {jpm} 如何将任何页面替换为自己的?

    firefox-addon-sdk - 在用户分支中设置首选项并在卸载时取消设置

    html - 填充与 Firefox 4-8 中的边框冲突? (HTML/CSS)

    html - Firefox 中的文本对齐