【问题标题】:Accessing Firefox Add-on SDK from Bootstrapped extension从 Bootstrapped 扩展访问 Firefox Add-on SDK
【发布时间】:2017-08-10 07:22:33
【问题描述】:

我需要访问 bootstrap entry points,但也想访问 Firefox Add-on SDK 提供的出色功能。

最好的方法是什么?

【问题讨论】:

  • 删除了firefox-os 标签... Firefox OS 目前不支持扩展(如果有的话)。

标签: javascript firefox firefox-addon firefox-addon-sdk


【解决方案1】:

经过更多调查,最优雅的选择似乎是使用the experimental --templatedir=TEMPLATEDIR option,它似乎非常适合执行此操作(使用自定义bootstrap.js 文件)。这使我可以连接到那些安装/卸载功能(如果需要)并像平常一样使用 SDK 的其余部分。

编辑:有人让我澄清cfx 是如何与--templatedir 一起使用的。

  1. 从下载的 SDK 中将包含 bootstrap.jsapplication.iniinstall.rdf 文件的名为 app-extension 的目录复制到某处。
  2. 像常规一样运行cfx xpi 命令,但将--templatedir=path/to/cloned/directory 添加到选项中。

【讨论】:

【解决方案2】:

您可以使用Loader。这与 SDK 使用的相同,您实际上可以将其设置为能够加载 SDK 模块。尽管 IIRC 没有很好的文档记录,并且有一些关于您需要如何进行设置的微妙细节,否则某些 SDK 模块将无法正常工作。

我建议您阅读上面的链接文档,然后使用 SDK bootstrap.js 作为基础并根据需要将其剥离(例如,删除所有那些花哨的 test 东西)。

另外,再举一个例子,@erikvold(他也在 SDK 团队工作或工作过)实现了对 internally loading (some) SDK modules in Scriptish 的最低支持。

【讨论】:

  • 我是否理解正确:我创建了一个附加 SDK 应用程序(通过 cfx?),修改 bootstrap.js 以使用我的 (un)install 函数,然后使用加载我的其余代码Loader?
  • 您可以这样做,但 AMO 可能会拒绝将其视为经过调整的 SDK 插件。我建议您只需复制 bootstrap.js 并对其进行编辑/剥离即可工作,而无需使用不需要的 SDK 杂项(SDK 测试、线束选项处理等)。
  • 嗯,我很困惑。常规(非 SDK 附加组件)不会被拒绝(对吗?),所以我不能将其作为其中之一提交吗?如果我弄乱了它,我不打算将它宣传为 SDK(我什至不知道有不同的类别可以提交扩展)。附言我喜欢 this 接近给你那个复选标记,希望我能在今天的编码会议中找出这种方法是否有效。 :P
  • 这是由于审查系统的限制和/或审查政策的不一致。
  • 原来是 SDK provides an elegant solution。不过感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多