Фреймворк для настольного клиента (HTML + JS)

Я планирую написать настольный клиент для Windows и Mac. Он будет основан на веб-технологиях (HTML + JS). Поэтому он должен работать на движке WebKit на рабочем столе пользователя.

Недавно я увидел интересный подход к решению этой проблемы: Appcelerator. Мне нравится его основная концепция, но я не хочу зависеть от их услуг. Вместо этого я хочу иметь полный контроль над программой WebKit, которая загружает мое приложение.

Существуют ли достойные фреймворки WebKit с открытым исходным кодом для создания настольных приложений? Приветствуются функции интеграции с рабочим столом, такие как поддержка Growl и прочее.

С уважением,

Стефан


Обновление: я не ищу Adobe Air ;-)


person Stefan    schedule 09.08.2009    source источник


Ответы (3)


Помимо Appcelerator, мне известно о двух фреймворках графического интерфейса рабочего стола, в которых есть компонент браузера, обертывающий webkit: GTK+ и Qt. Вы можете заставить компонент браузера заполнить окно вашего приложения и написать большую часть (или все) приложения в HTML+CSS. Если вам нравится язык Python или его очень важная стандартная библиотека, вы можете использовать привязки Python pyQt или pyGTK.

Более «мощной» альтернативой Prism, если вы готовы использовать движок Gecko, является XULRunner (https://developer.mozilla.org/En/XULRunner). В то время как Prism представляет собой набор облегченных привязок к рабочему столу для веб-приложения, XULRunner позволяет вам создавать законченные приложения, такие как сам Firefox или Thunderbird и т. д. Хотя многие приложения XULRunner написаны с помощью XUL, все приложение легко написать с помощью HTML/CSS внутри одного компонента XUL WebBrowser — и ваш javascript по-прежнему обладает всей мощью родного настольного приложения.

Я написал пару настольных приложений, используя XULRunner. Почти весь код приложений — это HTML/CSS/Javascript, но я включил фреймворк Python (через pyXPCOM и pyXPCOMext) и написал тонкий слой, который предоставляет некоторые функции Python для Javascript. Компоненты Mozilla, которые поставляются с XULRunner, предоставляют вам приличное количество функций бесплатно, но если вам нужны дополнительные функции или полнофункциональная библиотека программирования, Python сделает свое дело. Также есть привязки к Java. Или, если вы хотите использовать библиотеки C или C++, вы можете собрать XULRunner с нуля.

Обновление: кое-что изменилось с тех пор, как я написал вышеописанное в 2009 году. Во-первых, проект Prism был исключен из Mozilla Labs, а затем полностью прекращен в конце 2011 года (http://www.salsitasoft.com/2011/09/08/discontinuing-webrunner/) . Одна альтернатива, на которую стоит обратить внимание, — это https://github.com/rogerwang/node-webkit.

Обновление от декабря 2014 г. Еще одним недавним вариантом является GitHub Atom Shell. Он использует модуль «контента» Chromium, точно так же, как node-webkit и Chromium Embedded Framework (и публикует его как отдельную библиотеку: https://github.com/brightray/libchromiumcontent). Одним из основных отличий от node-webkit является то, что вместо объединения цикла событий узла с циклом событий Chromium Atom запускает их оба в отдельных процессах и использует смесь синхронизирующих и асинхронных межпроцессных сообщений для связи между ними.

Если вы заинтересованы во внедрении Chromium в приложение C++ или .Net, есть также Awesomium.

person Peter Rust    schedule 22.10.2009
comment
Вау, хороший вызов XULRunner. Возможно, стоит отметить, что, начиная с Firefox 3, XULRunner поставляется с Firefox! Просто создайте скрипт, использующий исполняемый файл Firefox для запуска вашего XUL-приложения: path/to/firefox -app path/to/application.ini. - person styfle; 15.09.2011

Платформа Appcelerator имеет открытый исходный код, поэтому вы не зависите от компании — вы всегда мог бы взломать код вокруг себя, если бы захотел. Если вам нужен больший контроль, вы всегда можете просто подключиться напрямую к WebKit. Gecko, эквивалентный AIR/Appcelerator, на который Джоэл ссылается, вероятно, Mozilla Prism.

person robertc    schedule 10.08.2009

Если вы не полностью привержены webkit, я припоминаю кое-что о проекте, позволяющем вам сделать что-то подобное с движком Firefox. По сути, это минималистское окно вокруг средства визуализации gecko, а также Gears и ярлык для вашего приложения на рабочем столе. Однако сейчас не могу найти ссылку.

person Joel Coehoorn    schedule 10.08.2009
comment
Вы пишете о prism.mozilla.com? Я тестировал его несколько месяцев назад, но мне он кажется слишком похожим на браузер. Хм, может быть, я должен построить что-то нестандартное. - person Stefan; 10.08.2009