Однофайловое приложение с xulrunner - возможно? - PullRequest
4 голосов
/ 24 октября 2011

Раньше я пытался связываться с xulrunner, а сейчас пытаюсь еще раз :)

«Настоящий» учебник ( Начало работы с XULRunner - MDN ) фактически показывает, что предполагается, что у вас есть application.ini и другие файлы (, возможно, заархивированные как .xpi, что тогда требует --install-app ...), а затем вызов должен быть таким:

xulrunner `pwd`/application.ini

... однако, я бы хотел более простой способ запуска - и, следовательно, я надеюсь на однофайловый подход к XUL-приложению :) ( Здесь хорошо то, что нельзя использовать zip-архив. xpi в качестве аргумента xulrunner, см. XULRunner вопрос - DonationCoder.com )

Дело в том, что я почти на 100% уверен, что когда-то в прошлом я использовал простое однофайловое приложение XUL, как в (псевдокоде):

xulrunner my-xul-app.extension

... но я не могу вспомнить, как все прошло :) Итак, это было возможно с xulrunner или только с firefox?

Насколько я помню, я использовал что-то вроде файла 'my-xul-app.xul' ( как однофайловое приложение ), в котором указывалось бы, скажем, только окно с единственная кнопка (, которая на самом деле ничего не могла сделать из-за отсутствия javascript ) - и я хотел бы повторить то же самое сейчас, чтобы освежить мою память (, если я что-то не перепутал со спины тогда:) )

Прежде всего, я нашел HOWTO: Начало работы с автономными приложениями Linux с использованием XUL - Ubuntu Forums (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>

и я пытаюсь "запустить" это, как рекомендовано в ссылке, с:

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

... и получается, что Firefox открывается с размером окна, равным 1x1 пикселя; если вы можете найти ручку, вы можете растянуть окно и прочитать:

Пульт XUL
На этой странице используется неподдерживаемая технология, которая больше не доступна по умолчанию в Firefox.

Ouch :( Ответы на это ( например Как исправить ошибку Remote XUL, полученную при использовании Firefox 4.x и расширенного интерфейса Webmail? ), похоже, связаны на фактический удаленный xul (и рекомендую плагин для обработки этого), но я хочу просто запустить файл локально ?! Откуда взялась "удаленная" часть?

Также, увидев переключатель Firefox '-app' ( Использование Firefox 3 в качестве среды выполнения XUL ); хотя это относится к application.ini, я попробовал это:

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

... и Firefox просто запустился как обычно.

Кстати, я не вижу ни -app, ни -chrome параметров командной строки в firefox --help;)

Но на самом деле я не очень хочу использовать firefox в качестве движка - просто xulrunner; и я попробовал подход Firefox, потому что думал, что он более-менее такой же, как xulrunner; оказывается, что это не так (даже если вы используете application.ini: Почему «firefox -App application.ini» и «xulrunner application.ini» ведут себя по-разному? | Форум поддержки 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

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Я не думаю, что вы когда-либо могли создавать однофайловые приложения XULRunner. Параметр -chrome <...>, вероятно, работал, я думаю, ошибка «Удаленный XUL» происходит из-за того, что URL-адрес file: //, а не chrome: //.

Вы можете использовать что-то вроде Live XUL Editor в Developer Assistant (ранее расширение Extension Developer) для быстрого тестирования XUL.

Общая идея, которую я слышу в эти дни, заключается в том, что вместо этого следует писать HTML5, когда это возможно, поскольку это более активно развивающаяся, более известная технология с менее несовместимыми изменениями и лучшими инструментами ...

0 голосов
/ 28 января 2015

Вот ответ, который я написал для другого связанного вопроса , воспроизведенного здесь, потому что он может помочь кому-то, кто хочет знать, как упаковать свое приложение XUL.

Очень жаль, что xulrunnerне может запустить zip-файлы .xpi или .xulapp напрямую, но можно упаковать большинство ваших файлов .js, .xul, .css и .png в jar-файл и обернуть все с помощью частной копии xulrunner без необходимостизапустите --install-app

Это шаги, которые я прошел для упаковки нашего приложения XUL.

Первый шаг - поместить все ваши файлы (кроме application.ini * 1010).*, 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 для WiX и создайте файл MSI для Wndows.

Конечно, вам также необходимо включить все файлы для XULRunner.

...