XULRunner tutorial
Mozilla April 13th, 2006
发现自己是越来越吊儿郎当了, 不务正业了…明天软工补考…现在还没再看过…今晚反而玩魔兽去了…
打了几盘后没事干就开始翻译 xulrunner 的 tutorial…
嗯,首先是 xulrunner 官方的介绍:
XULRunner是一个单独的“gecko运行时”安装包,可用于启动多种如同 Firefox 和 Thunderbird 一样丰富的 XUL+XPCOM 应用程序。它提供了安装、升级和反安装这些应用程序的机制。XULRunner 还将提供 libxul,这个解决方案允许把Mozilla技术嵌入到其它项目和产品中。
下面是正文…
依照惯例, 斜体字为变量, 可以被替换为您的应用程序的有意义值.
建立您的文件结构
把您的应用程序建立成这个样子:
/applicationName
/chrome
/applicationName
your app files
chrome.manifest
/defaults
/preferences
prefs.js
application.ini
事实上有更复杂的方法来做到这点, 不过在这儿一个简单的骨架也许足够了. 接下来开始建立配置文件.
建立您的 application.ini
XULRunner 工作时读取 application.ini 文件, 然后在特定的目录下查找和载入程序. 这儿是一个示范的 application.ini:
1 2 3 4 5 6 7 8 9 | [App] Vendor=company Name=applicationName Version=0.1 BuildID=20050506 [Gecko] MinVersion=1.8 MaxVersion=1.8 |
重要的部分是 [Gecko] 区段. [App] 区段看起来似乎很重要, 但其实并没有提供任何必要的功能. 而 [Gecko] 部分告诉 XULRunner 您的应用程序使用的是什么版本的 Gecko 引擎, 并且少了这几行 XULRunner 就无法运行.
建立您的 prefs.js
这是一个您设置初始值首选项文件, 或者 gecko 引擎设置或者应用程序特殊设置. 我们在这需要的就是:
1 | pref("toolkit.defaultChromeURI", "chrome://applicationName/content/startPage.xul"); |
这个 startPage 是您希望最初显示的 XUL 页面.
建立您的 chrome.manifest
这个文件履行 chrome:// url 和您的应用程序之间的映射:
1 | content applicationName file:applicationName/ |
它实际上告诉 XULRunner 当遇到一个 chrome://applicationName/content/ URL 的时候在 chrome 目录里检查 applicationName/.
大多数我所见到的 XUL 应用程序都是以 .jar 文件发布的, 而不是所有文件分步在 chrome/ 子目录的形式. 未压缩的程序方便于开发, 不过当您想配置它为一个 jar 文件:
1. Zip 格式压缩您的 /chrome/applicationName 目录, 将 applicationName.zip 放置到 /chrome 目录.
2. 重命名 applicationName.zip 为 applicationName.jar
3. 修改 chrome.manifest 以指向 applicationName.jar:
1 | content applicationName jar:applicationName.jar!/ |
jar: 协议告诉 XULRunner 这是一个 jar 文件, 文件名后的 ! 告诉它在 jar 文件内部查找.
通过 XULRunner 运行您的应用程序
现在所有的前期工作已经完成了, 马上就可以运行您的应用程序了. 在你 下载 XULRunner 之后, 仅需要一条命令行语句:
1 | xulrunner application.ini |
您的 startPage.xul 将在新的窗口里打开, 就像其它的桌面应用程序一样.
结论
为了让一个 XUL 应用程序工作于 XUL Runner, 您需要 3 个不同格式的配置文件. 这些确实是非常杂乱. 公平起见, chrome.manifest 格式有些用在 Firefox 扩展里, 所以重用这些功能性是十分可行的, 不过需要在 prefs.js 里确切说明您的开始页面. 这儿有一些其它 XUL 应用程序包 方法的提案, 不过它显得有些陈旧了, 并且没有代码的支持.
当你想要避免使用 Firefox 的时候, 一个基于 XULRunner 的应用程序看起来是个不错的解决方案. 我希望避免使用 Firefox 是因为程序的外观, 不过一般来说我没有看到太多超越编写一个扩展的优势, 它仅仅是一个可替换的选择.
优点:
* 在自己的进程里运行
* 不会受其它的 Firefox 扩展, 皮肤和配置的影响
* 不需要 Firefox
缺点:
* 不能随 Firefox 自动更新, 自动更新代码需要自己写
* 不会受其它的 Firefox 扩展, 皮肤和配置的影响
* 安装包会变得非常大, 因为需要下载 XULRunner 的二进制包 (大于13MB)
嗯…大致就那么多…
祈明天好运…
Related posts:
Tags: XULRunner