Как запустить приложение XUL в Mac OS X Snow Leopard?

Я пытаюсь создать XUL-приложение «Hello World» в Mac OS X. Я загружаю XULRunner с сайта здесь, следуйте этому руководству, а затем < href="https://developer.mozilla.org/en/XUL_Tutorial" rel="nofollow">этот учебник, а затем этот учебник... Ничего не сработало. Итак, я рассмотрел его получше и нашел этот раздел, чьим инструкциям я следовал. К сожалению, пока не работает. Я даже могу запустить приложение командой

/Library/Frameworks/XUL.framework/xulrunner-bin $PWD/application.ini 

Однако окно не отображается и ошибка не печатается. Это происходит, когда я тоже пытаюсь запустить приложение с firefox -app.

Что может быть не так? Кроме того, кто-нибудь знает какой-нибудь учебник, который будет работать? Это тоже был бы приемлемый ответ :)

Заранее спасибо!

Содержимое файла

Содержимое файла application.ini:

[App]
Vendor=Me
Name=Zull
Version=1.0
BuildID=31052011
[email protected]

[Gecko]
MinVersion=2.0
MaxVersion=2.*

Содержание chrome/chrome.manifest:

content zull file:content/

Содержание chrome/content/main.xul:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="main" title="My App" width="300" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <caption label="Hello World"/>
</window>

Наконец, содержимое defaults/preferences/prefs.js:

pref("toolkit.defaultChromeURI", "chrome://zull/content/main.xul");

person brandizzi    schedule 31.05.2011    source источник


Ответы (2)


Я вижу здесь только одну очевидную ошибку. Содержимое вашего файла chrome.manifest должно быть:

content zull content/

Как правило, вы всегда можете добавить флаг -jsconsole в командную строку. Это откроет консоль ошибок и часто покажет вам, что не так.

person Wladimir Palant    schedule 06.06.2011
comment
Я обновил chrome.manifest и запустил xulrunner с -jsconsole. Консоль представила сообщение Could not read chrome manifest file .../zull/chrome.manifest. Я скопировал chrome.manifest в корневой каталог приложения, а затем получил сообщение No chrome package registered for chrome:.../main.xul. Я думаю, что это другая проблема, поэтому я отмечу ваш вопрос как ответ и задам еще один, потому что -jsconsole в некотором роде то, что я искал. - person brandizzi; 07.06.2011

Следуя рекомендациям Владимира Паланта, я изменил содержание chrome/chrome.manifest с

content zull file:content/

to

content zull content/

Затем, следуя этим инструкциям, я создал chrome.manifest файл в корневом каталоге приложения, содержание

manifest chrome/chrome.manifest

Это необходимо, потому что местом по умолчанию для chrome.manifest в XULRunner 2.0 является корневой каталог приложения.

Однако ошибка No chrome package registered for chrome:///User/brandizzi/sandbox/zull/main.xul осталась. Затем я понял: пытаясь решить проблему, я столкнулся с использованием полного пути к файлу main.xul в defaults/preferences/prefs.js:

pref("toolkit.defaultChromeURI", "chrome:///User/brandizzi/sandbox/zull/main.xul");

Я просто изменил его на хромированный путь...

pref("toolkit.defaultChromeURI", "chrome://zull/content/main.xul");

... и это сработало.

Тем не менее, это была куча глупых ошибок, но теперь она решена. Эта тема оказалась очень полезной для меня. Кроме того, рекомендация Владимира по использованию опции -jsconsole XULRunner (например, в /Library/Frameworks/XUL.framework/xulrunner-bin ~/sandbox/zull/application.ini -jsconsole) была очень полезной.

person brandizzi    schedule 07.06.2011