在MDN上,引入了短语“外接管理器支持的XUL应用程序”。
通过拖动包含外接程序的XPI文件并将其放到FireFox窗口中,addon的小部件将安装在火狐的插件栏中。
我还可以通过指定命令行选项"-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:按照XULRunner上的教程构建XUL应用程序
现在,对于步骤3和4,它们应该包括通过添加代码来修改步骤2中构建的application.ini:
[XRE]
EnableExtensionManager=1它们还应该包括在prefs.js中添加行以支持扩展管理器。它们可能需要添加类似于以下代码的向XUL中添加addon窗口元素:
<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>我已经成功地使“启用外接管理器的XUL应用程序”(又名<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。将来,它将支持其他应用程序。有关更多信息,请参见bug.cgi?id=560716。
发布于 2011-12-06 20:24:23
我已经找到了答案,但这有点麻烦,需要从addon-kit javascript源代码中删除以下代码:
if (!require("api-utils/xul-app").is("Firefox")) {
throw new Error([
"The widget module currently supports only Firefox. In the future ",
"it will support other applications. Please see ",
"https://bugzilla.mozilla.org/show_bug.cgi?id=560716 for more information."
].join(""));
}由于上面的代码是专门设计的,防止在除了真正的Firefox之外的任何东西中使用addon工具包,所以这个方法不值得进一步研究。但是,如果有一种方法可以以符合Firefox的方式构建xul应用程序,那么我将重新讨论这个问题。
毕竟,Firefox是chrome://browser/content/browser.xul。
https://stackoverflow.com/questions/8334415
复制相似问题