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

时间:2011-10-23 21:59:49

标签: linux xul xulrunner

我之前曾试图弄乱xulrunner,现在我又想再试一次:)

实际上,“真实”教程(Getting started with XULRunner - MDN)确实表明一个人应该有application.ini和其他文件(可能压缩为.xpi,然后需要{{ 1}} ),然后调用应该是:

--install-app ...

...但是,我想要一个更简单的启动方式 - 因此,我希望单文件XUL应用程序方法:)(这里的一个好注意是,也不能使用zipped。 xpi作为xulrunner `pwd`/application.ini 的参数,请参阅XULRunner question - DonationCoder.com

问题是,我几乎100%肯定在过去的某个时刻,我使用过一个简单的单文件XUL应用程序,如(伪代码):

xulrunner

...但我不记得它是怎么回事:)所以,这可能是xulrunner my-xul-app.extension ,还是仅xulrunner

据我所知,我使用了像'my-xul-app.xul'这样的文件(作为单文件应用程序),它只会指定一个窗口只需一个按钮(由于缺少javascript而无法真正做任何事情) - 我现在想重复同样的事情,以刷新我的记忆(除非我感到困惑从那时起:)

首先,我找到了HOWTO: Getting Started with Linux Standalone Apps using XUL - Ubuntu Forums(2007),并修改了那里使用的firefox文件:

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>

...会发生什么是Firefox打开,窗口大小像1x1像素;如果你能找到手柄,你可以拉伸窗口,并阅读:

  

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

哎哟:(答案( like How do I fix the Remote XUL error I get when using Firefox 4.x and the Webmail Advanced Interface? )似乎与实际远程 xul有关(并建议使用插件来处理);但是我想要的只是在本地运行文件?!“远程”部分来自哪里?

另外,看到firefox开关“firefox -no-remote -chrome file:$PWD/example.xul ”(Using Firefox 3 as a XUL runtime environment);虽然它指的是-app,但我试过这个:

application.ini

...而Firefox就像往常一样开始。

顺便说一句,我在firefox -no-remote -app $PWD/example.xul 中找不到-app-chrome命令行选项;)

但实际上,我并不想将firefox --help用作引擎 - 只需firefox;我尝试了Firefox方法,因为我认为它与xulrunner相同;事实证明它不是(即使你使用xulrunnerWhy does 'firefox -App application.ini' and 'xulrunner application.ini' behave differentely? | Firefox Support Forum):

无论如何,如果我只运行application.ini(按照我的意愿),我会得到:

xulrunner

所以,我可以看到所有内容都指向“{1}}无法实现的”单一源文件“应用程序 - 但我只是想确定(以防我错过了一些模糊的教程:))。如果不是 - 有人记得在以前的某个时间点是否可能?

PS:

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

2 个答案:

答案 0 :(得分:2)

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

您可以使用类似Live XUL Editor in the Developer Assistant(以前的Extension Developer的扩展名)来快速测试XUL。

我现在听到的一般想法是,你应该尽可能地编写HTML5,因为它更积极地开发,更知名的技术,更改不兼容和更好的工具......

答案 1 :(得分:0)

以下是我为另一个related question撰写的答案,此处转载,因为它可能会帮助那些想知道如何打包他们的XUL应用程序的人。

xulrunner不能直接运行zipped .xpi或.xulapp太糟糕了,但是可以将大部分.js,.xul,.css和.png文件打包到jar中并将所有内容包装起来xulrunner的私有副本,无需运行--install-app

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

第一步是将所有文件( application.ini chrome.manifest prefs.js 除外)放入像这样的.jar文件(所有这些都是在Windows下进行的,对Linux和OSX进行了适当的调整)

zip -r d:\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");

现在您可以将这些文件放入.wxs for WiX并为Wndows生成MSI文件。

当然,您还需要包含XULRunner的所有文件。