之前我曾尝试过与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.ini , chrome.manifest和prefs.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的所有文件。