首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向自定义XULRunner应用程序添加外接程序栏

向自定义XULRunner应用程序添加外接程序栏
EN

Stack Overflow用户
提问于 2011-11-30 23:17:47
回答 2查看 1.7K关注 0票数 1

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:

代码语言:javascript
复制
[XRE]
EnableExtensionManager=1

它们还应该包括在prefs.js中添加行以支持扩展管理器。它们可能需要添加类似于以下代码的向XUL中添加addon窗口元素

代码语言:javascript
复制
<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)并添加了以下内容:

代码语言:javascript
复制
<em:targetApplication>
   <Description>
     <em:id>testapp@sample.xul</em:id>
     <em:minVers‌​ion>0.0</em:minVersion>
     <em:maxVersion>9.*</em:maxVersion>
   </Description>
 </em:targe‌​tApplication>.

这个扩展现在安装,但是我在jsconsole中得到了以下错误:

错误:小部件模块目前只支持Firefox。将来,它将支持其他应用程序。有关更多信息,请参见bug.cgi?id=560716

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 20:24:23

我已经找到了答案,但这有点麻烦,需要从addon-kit javascript源代码中删除以下代码:

代码语言: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。

票数 1
EN

Stack Overflow用户

发布于 2011-12-04 12:47:00

你把事情搞混了。-app命令行标志用于运行XULRunner 应用程序,而不是浏览器扩展。至于插件SDK,它不支持XUL,只支持HTML.有一个带有XUL支持的插件SDK的分叉。,但是它看起来有点过时了,我不确定它是否能够创建独立的窗口(这就是您要问的吗?)

当然还有经典扩展。它们允许您做任何事情,包括创建新的XUL窗口或使用插件条。但写起来要复杂得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8334415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档