Помимо 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