在MDN上,引入了短语"Add-on Manager-enabled XUL application" .
通过拖动包含附加组件并将其放入FireFox窗口的XPI文件,插件的小部件将安装在FireFox的附加栏中 .
我还可以通过指定命令行选项“-app application.ini”来使用Firefox来运行XUL应用程序 .
由于MDN让我认为两者并不相互排斥,我正在寻找一个简单的4步过程,其中步骤1和2分别创建XUL应用程序和XPI,步骤3描述了如何更改XUL应用程序或XPI准备步骤4,步骤4是最终整合 .
我将从第1步和第2步开始,然后在第3步或第4步中提出一些需要完成的事情 .
第1步:按照https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/addon-development/implementing-simple-addon.html上的教程构建XPI
第2步:按照https://developer.mozilla.org/en/Getting_started_with_XULRunner上的教程构建XUL应用程序
现在对于步骤3和4.它们应该包括通过添加代码来修改在步骤2中构建的application.ini:
[XRE]
EnableExtensionManager=1
它们还应包括向prefs.js添加行以支持扩展管理器 . 并且他们可能需要adding addon bar window element to XUL添加类似于以下的代码:
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton
id="xfox-statusbarpanel" class="toolbarbutton-1 chromeclass-toolbar-additional"
label="&name;"
tooltiptext="&name;"
oncommand="toggleSidebar('xfox-sidebar');"
context="xfox-contextmenu">
</toolbarbutton>
</toolbarpalette>
我成功地使"Add-on Manager-enabled XUL application"(又名 <TestApp
>)接受XPI(又名 <wikipanel
>)并尝试安装它,但它失败并显示错误消息:“ <wikipanel
>无法安装,因为它与 <TestApp version 1.0
不兼容> “
[编辑]我编辑了INSTALL.RDF(对于我的XPI)并添加了以下内容:
<em:targetApplication>
<Description>
<em:id>testapp@sample.xul</em:id>
<em:minVersion>0.0</em:minVersion>
<em:maxVersion>9.*</em:maxVersion>
</Description>
</em:targetApplication>.
扩展现在安装,但我在jsconsole中收到以下错误:
错误:窗口小部件模块目前仅支持Firefox . 将来它将支持其他应用程序 . 有关更多信息,请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=560716 .
2 回答
你在这里搞混合了 .
-app
命令行标志用于运行XULRunner applications ,而不是浏览器扩展 . 对于Add-on SDK,它没有XUL支持,只有HTML . 有一个支持XUL的fork of the Add-on SDK但它看起来有些过时,我不确定它是否能够创建独立的窗口(这是你要问的?) .当然有classic extensions . 它们允许您执行任何操作,包括创建新的XUL窗口或使用附加栏 . 但是写起来要复杂得多 .
我找到了答案,但它有点破解,需要从addon-kit javascript源中删除以下代码行:
由于上述代码专门设计用于防止在除了真正的Firefox之外的任何东西中使用插件套件,因此这种途径不值得进一步追求 . 但是,如果有办法以符合Firefox的方式构建xul-app,那么我将重新审视这个问题 .
毕竟Firefox是chrome://browser/content/browser.xul .