带有xulrunner的单文件应用程序 – 可能吗?

之前我曾尝试过与xulrunner ,现在我再次尝试着:)

“真正的”教程( XULRunner入门 – MDN )确实表明应该有application.ini和其他文件( 可能压缩为.xpi,然后需要--install-app ... ) ,然后调用应该是这样的:

 xulrunner `pwd`/application.ini 

…但是,我想要一个更简单的方法来启动 – 因此,我希望单个文件的XUL应用程序的方法:)( 这里很好的一个是,也不能使用压缩.xpi作为参数xulrunner ,请参阅XULRunner问题 – DonationCoder.com

事情是,我几乎100%肯定,在过去的某个时候,我已经使用了一个简单的单文件XUL应用程序,如(伪代码):

 xulrunner my-xul-app.extension 

…但我不记得它是如何:)所以,这是可能的与xulrunner ,或只有firefox

据我所知,我使用了一个'my-xul-app.xul'文件( 作为单文件应用程序 ),它只能指定一个窗口,只有一个button( 不能做任何事情,因为缺乏JavaScript ) – 我想现在重复同样的事情,以刷新我的记忆( 除非我从后面的困惑:)

首先,我发现HOWTO:使用XUL开发Linux独立应用程序 – Ubuntu论坛 (2007),我修改了在那里使用的example.xul文件:

 <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id = "myapp" title = "SQLite Example" height = "420" minHeight = "420" width = "640" minWidth = "640" screenX = "10" screenY = "10" sizemode = "normal" xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <spacer style = "height: 4px; cursor: default;" /> </window> 

我试图按照链接中的build议“运行”:

 firefox -no-remote -chrome file:$PWD/example.xul 

…什么情况是Firefox打开,窗口大小像1×1像素; 如果你能find句柄,你可以拉伸窗口,并阅读:

远程XUL
此页面使用Firefox默认不再支持的技术。

哎呀:(解答如( 我如何解决使用Firefox 4.x和Webmail高级接口时得到的远程XUL错误? )似乎与实际的远程 xul有关(并推荐一个插件来处理);但是我想要的只是在本地运行文件?!“远程”部分从哪里来的?

另外,看到Firefox的开关' -app '( 使用Firefox 3作为XUL运行时环境 ); 虽然它是指一个application.ini ,我试过这个:

 firefox -no-remote -app $PWD/example.xul 

…和Firefox一样平常开始。

顺便说一句,我看不到在firefox --help -app-chrome命令行选项)

但实际上,我并不想用firefox作为引擎 – 只是xulrunner ; 我尝试了Firefox的方法,因为我觉得它和xulrunner差不多; 原来不是(即使你使用的是application.ini : 为什么'firefox -App application.ini'和'xulrunner application.ini'performance不一样?| Firefox支持论坛 ):

无论如何,如果我只运行xulrunner (就像我想的那样),我会得到:

 $ xulrunner example.xul Error: App:Name not specified in application.ini 

所以,我可以看到一切指向“单一源文件”的应用程序不可能与xulrunner – 但我只是想确保(如果我错过了一些晦涩的教程:))。 如果不是这样 – 有没有人记得,如果在以前的时间点是可能的?

PS:

 $ firefox --version Mozilla Firefox 7.0.1 $ xulrunner --version Mozilla XULRunner 2.0 - 20110402003021 $ uname -r 2.6.38-11-generic $ cat /etc/issue Ubuntu 11.04 \n \l 

我不相信你可以创建单个文件的XULRunner应用程序。 -chrome <...>参数可能用于工作,我猜“远程XUL”错误来自URL是file://,而不是chrome://。

您可以使用开发人员助理 (以前的扩展开发人员扩展)中的Live XUL Editor来快速测试XUL。

我现在听到的一般想法是,只要可以,就应该编写HTML5,因为它是更积极的开发方式,更具有较少的不兼容变化和更好的工具的知名技术…

这里是我为其他相关问题所写的答案,这里转载是因为它可以帮助那些想知道如何打包XUL应用程序的人。

xulrunner不能直接运行压缩的.xpi或.xulapp太糟糕了,但是可以将大多数.js,.xul,.css和.png文件打包到一个jar文件中,并用私有文件包装所有文件的xulrunner,而不必运行–install-app

这些是我通过打包我们的XUL应用程序的步骤。

第一步是把所有文件( application.inichrome.manifestprefs.js除外)放到.jar文件中(所有这些都在Windows下进行,对Linux和OSX做适当的调整)

 zip -rd:\download\space\akenispace.jar * -i *.js *.css *.png *.xul *.dtd 

然后在d:\ download \ space中按如下方式布局文件:

 D:\download\space\akenispace.jar D:\download\space\application.ini D:\download\space\chrome.manifest D:\download\space\defaults D:\download\space\defaults\preferences D:\download\space\defaults\preferences\prefs.js 

这些文件的内容如下

的application.ini

 [App] Vendor=Akeni.Technologies Name=Akeni.Space Version=1.2.3 BuildID=20150125 Copyright=Copyright (c) 2015 ID=space@akeni.com [Gecko] MinVersion=1.8 MaxVersion=35 

chrome.manifest用于

 content akenispace jar:akenispace.jar!/chrome/content/ skin akenispace default jar:akenispace.jar!/chrome/skin/ locale akenispace en-US jar:akenispace.jar!/chrome/locale/en-US/ resource akenispace jar:akenispace.jar!/chrome/resource/ 

的prefs.js

 pref("toolkit.defaultChromeURI", "chrome://akenispace/content/space.xul"); 

现在,您可以将这些文件放入WiX的.wxs文件中,并为Wndows生成一个MSI文件。

当然你也需要包含XULRunner的所有文件。